【发布时间】:2021-03-20 23:16:56
【问题描述】:
所以我有一个二维动态数组,我必须调整它的大小。在我调整它的大小后,编译器说它不能通过这样的格式访问内存:array[i][j]
void resize(int **array,int newsize,int size){
int newarraysize=WINDOWY/newsize;
int arraysize=WINDOWY/size;
array= (int**)realloc(array,(newarraysize*sizeof(int*)));
if(newarraysize>arraysize){
for(int i=0; i<arraysize; i++)
array[i]=(int*)realloc(tomb[i],(newarraysize*sizeof(int)));
}
else{
for(int i=0; i<newarraysize; i++)
array[i]=(int*)realloc(tomb[i],(newarraysize*sizeof(int)));
}
printf("\n");
for(int i=0;i<newarraysize;i++)
{
for(int j=0;j<newarraysize;j++)
printf("[%d][%d]: %p ",i,j,&array[i][j]);
printf("\n");
}
}
【问题讨论】:
-
这能回答你的问题吗? Resizing 2D Arrays in C
-
@user3121023 我试过了,但没用。它做了同样的事情。哦,是的,对不起。我忘记翻译那个了。Tomb 的意思是“数组”。
标签: c dynamic-memory-allocation realloc alloc