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

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中的结构体成员赋值。
...全文
394 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
解决方案基本和楼上的一致!结贴!
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在C语言中,结构体是一种复合数据类型,它能够将不同类型的多个数据组合成一个统一的整体。结构体通常被用于表示较为复杂的数据结构,例如学生信息、员工记录等。指针是C语言中一种特殊的变量,它存储的是其他变量的地址,通过指针可以间接访问和修改被指向的变量。 定义结构体时,需要使用struct关键字,后面紧跟结构体的名称以及其成员。例如,以下代码定义了一个结构体stu,它包含了学生的姓名(字符串指针)、学号(整型)、年龄(整型)、所在小组(字符)和成绩(浮点型): 我们可以创建结构体变量并初始化成员。例如: 指针可以指向结构体变量。定义结构体指针的方式如下: 然后可以将结构体变量的地址赋值指针,如下: 需要注意的是,不能直接写pstu = stu1,因为stu1是结构体变量本身,而不是地址。结构体变量名不会像数组名那样在表达式中自动转换为指针,因此必须使用&运算符来获取其地址。 访问结构体成员有两种方式:一是通过解引用操作*和成员访问运算符.,例如(*pointer).memberName;二是使用结构体指针的箭头运算符->,例如pointer->memberName。这两种方式是等价的,但箭头运算符使代码更易读。例如: 结构体数组结构体的数组形式,可以同时存储多个结构体变量。例如: 结构体数组指针可以用来遍历整个数组。例如: 以上就是C语言中关于结构体指针的基本概念及其用法的介绍,包括结构体的定义、初始化指针的声明、赋值,以及如何通过指针访问结构体成员。熟练掌握这些知识对于编写复杂的C程序非常重要。

70,026

社区成员

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

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