void dynamicArray(int** num1, int** num2, char*** str, int size)
{
int i = 0;
*(num1) = (int*)malloc(sizeof(int) * size);
*(num2) = (int*)malloc(sizeof(int) * size);
*(str) = (char**)malloc(sizeof(char*) * size);
for( i = 0; i < size; i++){
*(*(str) + i) = (char*)malloc(sizeof(char) *5);
}
return;
}
我是否正确地为我的*** char正确分配了内存?我正在尝试创建一个二维“句子”数组。我的主程序中存在问题,我认为这可能是问题所在。
答案 0 :(得分:0)
来自评论:
我遇到的问题是字符串数组。在另一个函数中,我为每个* strPtr分配一个字符串。当我这样做时,它会覆盖它之前的所有值。即* strPtr =“你”* strPtr + 1 = hi。 NOW * strPtr + 0等于hi。
由于这段代码看起来不错,但你在这里的解释看起来很有趣,我认为你使用数组错了。
*strPtr[1] != *strPtr + 1
*strPtr[1] == *(strPtr + 1) == strPtr[1][0]
您应该使用第二行中的一种形式,而不是第一行。