c语言结构体指针数组怎么初始化
在C语言中,结构体指针数组的初始化可以通过以下几种方式进行:
- 逐个初始化:通过逐个为每个元素赋值。例如:
struct Person {
char name[20];
int age;
};
struct Person *people[3];
people[0] = malloc(sizeof(struct Person));
strcpy(people[0]->name, "Tom");
people[0]->age = 20;
people[1] = malloc(sizeof(struct Person));
strcpy(people[1]->name, "Jerry");
people[1]->age = 25;
people[2] = malloc(sizeof(struct Person));
strcpy(people[2]->name, "Alice");
people[2]->age = 30;
- 使用静态初始化:通过静态方式初始化每个元素。例如:
struct Person {
char name[20];
int age;
};
struct Person *people[3] = {
&(struct Person){"Tom", 20},
&(struct Person){"Jerry", 25},
&(struct Person){"Alice", 30}
};
- 使用循环初始化:通过循环为每个元素赋值。例如:
struct Person {
char name[20];
int age;
};
struct Person *people[3];
char names[3][20] = {"Tom", "Jerry", "Alice"};
int ages[3] = {20, 25, 30};
for (int i = 0; i < 3; i++) {
people[i] = malloc(sizeof(struct Person));
strcpy(people[i]->name, names[i]);
people[i]->age = ages[i];
}
需要注意的是,在使用完结构体指针数组后,需要手动释放内存。
版权声明
本文仅代表作者观点,不代表米安网络立场。
上一篇:python列表换行输出怎么实现 下一篇:java中类的继承要遵循什么原则
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。