你好我有这个结构
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/