结构体成员是结构体数组指针,如何初始化,如何赋值?

linux-c 2014-07-08 09:35:42
    struct acc_data {

struct struct_A A_name;
struct struct_B *B_name[1024];

};

struct struct_B{

char name[11+1];

};
//如何给struct_B中的结构体成员赋值。
...全文
376 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
robertbo 2014-07-08
  • 打赏
  • 举报
回复
由于acc_data里面声明的是指向struct_B的指针,所以在赋值之前需要先分配内存才行。 另,struct可以使用typedef声明,代码会更简洁一些。 typedef struct struct_A{ /**/ }; typedef struct struct_B{ char name[11+1]; }; typedef struct acc_data { struct_A A_name; struct_B *B_name[1024]; }; for (int i = 0; i < 1024; i++) { ss.B_name[i] = new struct_B; if(NULL != ss.B_name[i]) strcpy_s(ss.B_name[i]->name, "***"); }
zilaishuichina 2014-07-08
  • 打赏
  • 举报
回复

for (int i = 0; i < 1024; i++)
{
    B_name[i] = new struct  struct_B;
    if(NULL != B_name[i])
        B_name[i]->name = XXX;
}
starytx 2014-07-08
  • 打赏
  • 举报
回复
全部初始化为NULL就可以
linux-c 2014-07-08
  • 打赏
  • 举报
回复
解决方案基本和楼上的一致!结贴!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧