gpt4 book ai didi

c - 访问冲突写入位置 0x61d1e5bc

转载 作者:行者123 更新时间:2023-11-30 18:22:42 26 4
gpt4 key购买 nike

我从 2D 动态数组的 TwoDimArray 函数声明了 H。当行(标记为**)执行时,编译器显示错误:

访问冲突写入位置 0x61d1e5bc。

对于较小的 lenA 和 lenB 值(例如 250),没有任何问题!

int lenA=100030;
int lenB=100030;
int **H;

int TwoDimArray(int ***x,int nRow,int nCol)
{
int i;
*x=(int **)malloc(nRow*sizeof(int *));
if(*x==NULL)
return 1;
(*x)[0]=(int *)malloc(nCol*nRow*sizeof(int));
if((*x)[0]==NULL)
return 2;
for(i=1;i<nRow;i++)
(*x)[i]=(*x)[i-1]+nCol;
return 0;
}

TwoDimArray(&H, lenB, lenA);

for(int j=0;j<lenA;j++){
H[0][j]=0;
}

** for(int i=0;i<lenB;i++){
H[i][0]=0;
}

最佳答案

32 位整数的 100030x100030 数组需要 40GB RAM。您的进程可以访问这么多内存吗?

很可能,第二个 malloc 失败了。但是,您的代码会忽略失败并继续执行。

关于c - 访问冲突写入位置 0x61d1e5bc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16405182/

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