我正在尝试用C创建一个2d数组。以下函数是辅助函数。但是,当我运行程序时,使用d = 5,我的输出应该是一个5x5矩阵,值从25减少到0.相反,我得到......
-86 -87 -88 -89 -90
-91 -92 -93 -94 -95
-96 -97 -98 -99 -26
-27 -28 -29 -30 -31
-32 -33 -34 -35 -36
为什么?
int* init()
{
int arr[d][d];
int* p;
p = &arr[0][0];
int r;
int c;
int place = 0;
int num = d*d;
for (r=0;r<d*d;r++)
{
for (c=0;c<d;c++)
{
*(p + place) = num;
num--;
place++;
}
}
return p;
}
void draw(int* p)
{
int r;
int c;
int num = 0;
for (r=0;r<d;r++)
{
for (c=0;c<d;c++)
{
printf("%i ",*(p+num));
num++;
}
printf("\n");
}
}