gpt4 book ai didi

c - 动态分配二维数组

转载 作者:行者123 更新时间:2023-11-30 16:29:04 25 4
gpt4 key购买 nike

我的任务是根据 A 和 B 中给出的值创建一个 2xn 的二维数组,其中有 n 个元素。

我找到了这种为二维数组分配内存的方法,它有效,但我不明白它是否或为什么正确

int **tab2D(int A[],int B[],int n)
{
int **newTab = malloc(n*sizeof(int*));
newTab[0] = A;
newTab[1] = B;
return newTab;
}

我知道还有其他方法可以做到这一点,但我对这个很好奇。

最佳答案

据我了解您的代码,它应该像这样工作。

int **tab2D(int A[],int B[],int n)

可以看作

int **tab2D(int *A,int *B, int n)

因此您将指针传递给已分配的两个数组。然后为指针分配一些内存

 int **newTab = malloc(n*sizeof(int*));

我认为应该是

 int **newTab = malloc(2*sizeof(int*));

相反,因为我假设您有 AB,它们的长度 n 相同。然后取消引用新的指针到指针并将指针分配给数组

newTab[0] = A;
newTab[1] = B;

可以写成

*newTab = A;
*(newTab + 1) = B;

关于c - 动态分配二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52053990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com