gpt4 book ai didi

c - 如何在结构数组中初始化和动态分配一个 int 指针成员?

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:27 26 4
gpt4 key购买 nike

如何初始化并动态分配结构数组中的 int 指针?

我的程序允许我打印 enroll[0].grades[x],但是当我尝试访问除 0 以外的任何其他 enroll 索引值时(例如 enroll[1 ].grades[x]enroll[2].grades[x]),我的程序段错误。

这是我的代码...

如何使 enroll[2].grades[x] 初始化并等于零?

在我的结构中:

struct Enroll
{
int *grades;
};

主要内容:

struct Enroll *enroll = (struct Enroll *) calloc(count.enroll, 10 * sizeof(struct Enroll));

enroll->grades = (int *) calloc(count.grades, 10 * sizeof(int));

在函数中:

enroll[x].grades[y];

最佳答案

为结构登记数分配内存

struct Enroll *p = calloc(count.enroll, sizeof(struct Enroll));

现在你有了要填充的结构数量,你需要的是用于保存值的 int 指针的内存,int 指针的数量是 count.enroll

for(i=0;i<count.enroll;i++)
{
p[i].grades = calloc(count.grades,sizeof(int));
// Fill in the values
}

PS:或者你可以选择 malloc() 然后是 memset()

关于c - 如何在结构数组中初始化和动态分配一个 int 指针成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com