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处修改 和注释就好了

  • 相关阅读:
    App如何选择移动广告平台,开发者2
    mouseover与mouseenter与mousemove差额mouseout与mouseleave差额
    JFinal 的源代码超具体的分析DB+ActiveRecord
    Vim经常使用技巧总结1
    2015第4周四网摘
    Java任务调度
    2015第4周二网摘
    2015第4周一
    2015第三周日
    转SpringSided代码规范遵循
  • 原文地址:https://www.cnblogs.com/lanjianhappy/p/6011525.html
Copyright © 2011-2022 走看看