gpt4 book ai didi

c - 为指向结构数组的指针动态分配内存

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:48 24 4
gpt4 key购买 nike

你好我有这个结构

typedef struct STUDENT
{
char studName[20];
int timeEnter;
int timeUpdate;
}STUDENT;

和指向结构数组的局部指针

STUDENT *studArr[100];

我正在尝试通过读取文件的第一行来为结构分配内存,然后使用它为结构分配内存。

fscanf(fp, "%s", &first);
**studArr = (STUDENT**) malloc(sizeof(STUDENT*)*first);

我收到一条错误消息,指出没有运算符“=”与分配行上的这些操作数匹配

为什么我会收到错误,我在这里做错了什么?

提前致谢

最佳答案

我觉得你把事情弄糊涂了,看起来你在声明一个指针数组,而你只需要一个指针。请注意,只要您的索引正确,指向“一个”struct 的指针就与指向一百的指针相同。

你应该有:

STUDENT *studArr;

然后,一旦您知道需要多少人(我假设 first 是要为其分配房间的学生人数):

studArr = malloc(first * sizeof *studArr);

另请注意 no casting is needed .

关于c - 为指向结构数组的指针动态分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16208311/

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