繁体   English   中英

在结构中动态分配数组-C

[英]Dynamically allocate array in struct - c

尝试从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++;
            }
        }
    }
}

以下行:

CurrentData *AllCurrentData = malloc(NUM_ITEMS * sizeof(CurrentData));

应该:

CurrentData AllCurrentData = malloc(NUM_ITEMS * sizeof(*CurrentData));

还可以替换为:

AllCurrentData[newLineCount]->data

有了这个:

AllCurrentData[newLineCount].data

原因:你拥有了typedefCurrentData是一个指针struct current ,你可以直接分配AllCurrentData作为阵列struct current

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM