zoukankan      html  css  js  c++  java
  • c语言指针与结构体之内存动态分配

     1 struct dangdangtest
     2 {
     3     char email[500];
     4     char name[30];
     5     char addr[100];
     6     int num;
     7     int bugnum;
     8     char tel[20];
     9     char phone[20];
    10     double RMB;
    11     
    12     
    13 };
    14 void main2()
    15 {
    16     //struct dangdangtest dd[1024*1024];//数组越界
    17     //动态分配一个元素
    18     struct dangdangtest *p = (struct dangdangtest *)malloc(sizeof(struct dangdangtest)*1);
    19     //写数据
    20     sprintf(p->email,"15465325698@qq.com");//初始化
    21     sprintf(p->name,"lj");
    22     sprintf(p->addr,"重庆");
    23     p->num = 100;
    24     p->bugnum = 1000;
    25     sprintf(p->tel,"4521562");
    26     sprintf(p->phone,"15865321512");
    27     p->RMB = 52.24;
    28     //读数据
    29     printf("
    %s,%s,%s,%d,%d,%s,%s,%f",p->email,p->name,p->addr,p->num,p->bugnum,p->tel,p->phone,p->RMB);
    30     
    31     getchar();
    32 }
    33 
    34 void main()
    35 {
    36     int i;
    37     struct dangdangtest *p = NULL;
    38     struct dangdangtest *px = NULL;
    39     p= (struct dangdangtest *)malloc(sizeof(struct dangdangtest)*10);
    40     //方式一 P[i]等价于一个结构体 数组访问的方式
    41     //p[i]=p+i
    42     /*for(i=0;i<10;i++)
    43     {
    44         sprintf(p[i].name,"lj%d",i);
    45         sprintf(p[i].addr,"重庆%d",i);
    46         p[i].num = 100;
    47         printf("
    %s,%s,%d",p[i].name,p[i].addr,p[i].num);
    48     }*/
    49 
    50     //指针访问的方式
    51     //for(i=0;i<10;i++)
    52     //{
    53     //    //加上大括号 避免优先级的歧义
    54     //    sprintf((*(p+i)).name,"lj%d",i);
    55     //    sprintf((*(p+i)).addr,"重庆%d",i);
    56     //    (*(p+i)).num = 100;
    57     //    printf("
    %s,%s,%d",(*(p+i)).name,(*(p+i)).addr,(*(p+i)).num);
    58     //}
    59     
    60     //指针轮寻
    61     px  = p;
    62     for(px;px<p+10;px++)
    63     {
    64         sprintf(px->email,"lj%x",px);
    65         sprintf(px->addr,"重庆%x",px);
    66         px->num = 100;
    67         printf("
    %s,%s,%d",px->email,px->addr,px->num);
    68     }
    69     getchar();
    70 
    71     
    72 }

    注意测试的时候main处修改 和注释就好了

  • 相关阅读:
    依赖注入(DI)和Ninject
    Dapper.NET——轻量ORM
    优化SQL查询:如何写出高性能SQL语句
    Razor语法
    sublime Text 3 官方版 3114 注册码
    数据库索引,存储过程,视图,事务
    Action向视图传值的6种方式
    C#知识点提要
    算法总结
    c++ 构造函数,拷贝构造函数,析构函数与赋值操作符
  • 原文地址:https://www.cnblogs.com/lanjianhappy/p/6011525.html
Copyright © 2011-2022 走看看