可能重复:
如何在 C 中使用动态多维数组?
指向数组类型的指针,c
如果我的 C89 ANSI(例如不是 C99)C 代码声明一个变量并使用以下方法分配内存:
char myArray[30000][3];
有没有办法可以通过使用将声明与内存分配分离malloc()
?例如(请原谅我的新手):
char *myArray;
int i, arrayLength;
...
/* compute arrayLength */
...
myArray = malloc( sizeof(char) * arrayLength * 3);
for (i=0; ii<arrayLength; i++)
strncpy(myArray[i], "ab", 3);
...
free(myArray);
目标是创建myArray
看起来像,例如:
myArray[0] = "ab"
myArray[1] = "ab"
myArray[2] = "ab"
...
myArray[arrayLength-1] = "ab"
这是正确的方法吗?