gpt4 book ai didi

c - 尝试将元素附加到多维数组。尝试运行应用程序时抛出异常

转载 作者:太空宇宙 更新时间:2023-11-04 05:48:22 24 4
gpt4 key购买 nike

int main()
{
int r;
scanf("%d", &r);
int **arr = (int *)malloc(r * r * sizeof(int));
*(*(arr + r) + r);

for (int i = 1; i <= r; i++)
{
for (int j = 1; j <= r; j++)
{
printf("Enter element %d.%d: \n", i,j);
scanf("%d", &arr[i-1][j-1]);
}

}
getch();
}

所以这最近发生了,基本上我想要的是将矩阵元素附加到二维数组,但它说

'Matrix.exe 中的 0x0F1B97AE (ucrtbased.dll) 抛出异常:0xC0000005:访问冲突写入位置 0xCDCDCDCD'

不知道该怎么办:(请帮忙

最佳答案

您将 malloc 内存块用作 C 多维数组。相反,您需要使用一组方括号。

代替 arr[i-1][j-1],您需要类似 arr[i * r + j] 的东西。

令我惊讶的是,大多数编译器会默认接受它,因为您使用 int * 进行初始化和 int **

关于c - 尝试将元素附加到多维数组。尝试运行应用程序时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930946/

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