C - 从类型 'char *[(sizetype)(NColDataType)]' 分配给类型 'char *' 时不兼容的类型

标签 c arrays dynamic types malloc

我在动态声明二维数组时遇到问题(一个维度的大小已知,另一个维度未知,直到读取文件以及存储在整数·行·中的行数)。

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/

相关文章:

c - 程序给出正确答案后释放 C 中的内存时出错

c - 崩溃的 Pop() 函数

c - 如何在 SDK 的交叉编译器中访问 -ldl

c - execvp(grep) 后失去控制

ios - 如何在 ios 中使用 View 高度动态调整阴影?

header 中的c++数组声明

无法从打开的文件中读取

ruby - 将字符串拆分为每个元素具有特定数量字符的数组

arrays - 将字符串分配给矩阵元素

JavaScript 将值添加到多维数组