要自己定义数组大小的话,要用到动态数组,关于动态数组,百度百科就有,针对你这个题目 我给出动态数组的定义和最终释放空间的代码
#include"
stdio.h"
#include"
stdlib.h" //动态分配的函数需要包含该
头文件int main()
{
int i,j,w,h,**data; //定义指向指针的指针,即表示
二维数组名,只定义了分配相关变量,其他变量自己定义
printf("Please input width and height\n");
scanf("%d%d",&w,&h);
data=(int**)calloc(w,sizeof(int*)); //分配w个指针型的空间,即第一维
for(i=0;i<w;i++){
data[i]=(int*)calloc(h,sizeof(int));//分配h个int型的空间,即第二维
}
/*for(i=0;i<w;i++)
for(j=0;j<h;j++)
scanf("%d",&data[i][j]);
for(i=0;i<w;i++)
for(j=0;j<h;j++)
printf("%d ",data[i][j]);*/
.
.
.
.
.
.
for(i=0;i<w;i++){
free(data[i]);//释放第二维指针
}
free(data);//释放第一维指针
return 0;
}
中间注释掉的地方是我测试用的,测试了一会儿, .....的地方时你的代码!