尝试从csv文件动态分配数据。我试图创建一个包含2d数组的结构数组。问题是我在尝试为结构内部的数组分配内存时遇到访问冲突。带注释的标记问题区域。任何帮助表示赞赏。
typedef struct current{
char **data;
}*CurrentData;
CurrentData getData(FILE *current){
CurrentData *AllCurrentData = malloc(NUM_ITEMS * sizeof(CurrentData));
/*allocate struct data memory, skipping the first line of data*/
while ((ch = fgetc(current)) != EOF){
if (firstNewLine == 0){
firstNewLine++;
}
if (firstNewLine > 0){
if (ch == '\n'){
AllCurrentData[newLineCount]->data = malloc(COLUMNS * sizeof(char)); //problem here//
newLineCount++;
}
}
}
}
答案 0 :(得分:0)
以下这一行:
CurrentData *AllCurrentData = malloc(NUM_ITEMS * sizeof(CurrentData));
应为:
CurrentData AllCurrentData = malloc(NUM_ITEMS * sizeof(*CurrentData));
同样替换它:
AllCurrentData[newLineCount]->data
用这个:
AllCurrentData[newLineCount].data
原因:您typedef
编辑CurrentData
是指向struct current
的指针,您可以直接将AllCurrentData
分配为struct current
的数组。< / p>