我在动态声明二维数组时遇到问题(一个维度的大小已知,另一个维度未知,直到读取文件以及存储在整数·行·中的行数)。
int NColDataType = 16;
char *DataType[NColDataType];
DataType = (char *)malloc(sizeof(char)*lines);
编译后,我在第三行收到以下错误:
incompatible types when assigning to type 'char *[(sizetype)(NColDataType)]' from type 'char *'
我对这里的问题一无所知,特别是为什么即使类型似乎匹配,也会抛出错误。
最佳答案
变量DataType
是一个指针数组,并且您尝试为其分配一个指针。我认为你的意思是这样做,例如
DataType[0] = malloc(lines);
或者您希望DataType
成为指向数组的指针,例如
char (*DataType)[NColDataType];
DataType = malloc(sizeof(DataType[0]) * lines);
关于C - 从类型 'char *[(sizetype)(NColDataType)]' 分配给类型 'char *' 时不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209765/