c语言动态分配二维数组编译报错,求求大佬看看

	int **src,**dst;
	int i;
	int n=2048;
src=(int **)malloc(sizeof(int*)*n);
for(i=0;i<n;i++)
src[i]=(int *)malloc(sizeof(int)*n);
src[n][n]={{0},{1}};
dst=(int **)malloc(sizeof(int*)*n);
for(i=0;i<n;i++)
dst[i]=(int *)malloc(sizeof(int)*n);
dst[n][n]={5,4,3,2,1};

 

还有一个问题:

我记得定义数组不可以使用变量作为直到数组的长度。

另外,二维数组初始化值,如你上面初始化是不可行的。

二维数组初始化:

方式一:

在定义的同时赋值
int a[3][2]={0};//所有数组元素均为0

方式二:

int a[3][2]={1,2,3,4,5,6};//常规的赋值方法

方式三:

int a[3][2]={{1,2},{3,4},{5,6}};//分行的赋值方法

方式四:其中,这里的行初始化必须全都写下来。

int a[3][2]={{1,2},{0},{3}};//部分赋值方法,第一行元素的值分别为1,2,第二行元素值都是0,
第三行第一个元素值为3,第二个元素值为0

 

应该不是分配内存出的错,我觉得是

src[n][n]={{0},{1}};

dst[n][n]={5,4,3,2,1};

这里出的错;去掉初始值就可以编译过了。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632