0
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 正确分配了内存?我正在尝试创建一个二维数组“句子”。我的主程序有问题,我认为这可能是问题所在。

4

1 回答 1

0

从评论:

我遇到的问题是字符串数组。在另一个函数中,我为每个 *strPtr 分配一个字符串。当我这样做时,它会覆盖它之前的所有值。即 *strPtr = "你" *strPtr + 1 = hi。现在 *strPtr + 0 完全等于 hi。

由于这段代码看起来不错,但你在这里的解释看起来很有趣,我认为你使用的数组是错误的。

*strPtr[1] != *strPtr + 1 
*strPtr[1] == *(strPtr + 1) == strPtr[1][0] 

您应该使用第二行中的一种形式,而不是第一行。

于 2013-02-18T03:18:53.327 回答