繁体   English   中英

访问冲突写入位置c,2D动态数组

[英]Acces violation writing location c ,2D dynamic array

亲爱的用户,我正在尝试将数据写入数组,但是由于某种原因,我一直都收到此错误。.请帮助我

int** input_array_dyn1(int n,int m) 
{
int i,**a; //index and array we want to set up.
a=(int**)calloc(n,sizeof(int*)); //get room for array in size n of ints.
assert(a); //checking that we have space.
for (i=0;i<n;i++)  //loop for getting value in each cell...
{
a[i]=(int*)calloc(m,sizeof(int)); //get room for array in size n of ints.
assert(a[i]); //checking that we have space.
}
return a; //returning the new array we made.
}

void randomMat(int** a,int n,int m)
 {
int i,j;
for(i=1;i<=n;i++)           
    for(j=1;j<=m;j++)
        a[i][j]=rand()%2;

printf ("you'r first matrix is:\n");
//print_mat(a,m,n);
}

我总是从a[i][j]=rand()%2;行中得到错误a[i][j]=rand()%2; Acces违反规定的位置,请帮帮我!

您会发现自己在input_array_dyn1randomMat中的循环有所不同

比较例如

for (i=0;i<n;i++)  //loop for getting value in each cell...
{
a[i]=(int*)calloc(m,sizeof(int)); //get room for array in size n of ints.
assert(a[i]); //checking that we have space.
}

for(i=1;i<=n;i++)           
    for(j=1;j<=m;j++)
        a[i][j]=rand()%2;

如果数组具有n元素,则索引的有效范围是[0, n-1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM