首页 > 编程知识 正文

结构体里面的结构体指针,结构体指针加1

时间:2023-05-03 18:09:59 阅读:174446 作者:2525

结构体中的结构体指针为使用一、问题背景二、代码三、说明

一、问题背景因为日常工作没有编程的机会,所以只知道代码。 现在需要重新编写代码,以固定格式保存数据。 必须使用结构和结构指针。 数据数量是不固定的,在创建过程中使用结构指针非常有用,并且在使用结构中的结构指针时出现了许多问题。

为避免在以后的编程中使用结构指针发生错误,请直接输入以下代码:

二.代码# include stdio.h # include stdlib.h # include string.h # define offset _ num3//结构指针偏移次数typedef struct { chachad (a ); //结构类型Atypedef struct { char str_b[20]; A *pa; ) b; 包括//a型结构指针voidprint_a(a ) a )的结构类型b ) /用于打印结构的数据的(printf ) a-str_a=%s(n )、a-str_a ); printf(a-lf=%2.3f(n ),a-lf ); }intmain(intargc,char *argv[] ) b*Pb=(b* ) malloc ) sizeof(b ) ); //先申请结构指针的内存空间大小,此时编译器不分配结构中的结构指针地址。 p-pa=(a* ) malloc ) sizeof ) a ) *OFFSET_NUM ); //再次申请结构体中的结构体指针的存储器空间大小,如果顺序相反,则提示无法识别pb; 内存区域请务必乘以所需的量。 否则,数据可能会出错。 int i; for(I=0; iOFFSET_NUM; I ) strcpy(Pb-pa-str_a,' string_A ' ); //赋值pb-pa-lf=50.2 i; //赋值print_a(Pb-pa; //将结构指针pa地址作为参数输出打印信息pb-pa; //移动到下一个大小a的存储器空间意味着定义了结构阵列a[3] () (但不是) } pb-pa-=OFFSET_NUM; //恢复指针指向的地址的位置。 否则,free ()释放空间时将报告错误。 错误消息是//munmap_chunk ) : invalid pointer: //原因是释放的未申请的存储器free(PB-pa ); //先释放结构内部的结构指针free(Pb ); //释放结构指针return 0; (三、以上评论,并不意味着说法完全正确,只是我一点点编程测试个人摸索的结果,如果说的不合理或错误,请观众指正。

因为找不到可以这样使用的书,所以如果看到了大人物的话,想留下书名学习~~~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。