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"
それは正しいアプローチですか?