我正在尝试使用 calloc 和 malloc 来创建二维数组。到目前为止,我的逻辑是首先使用 calloc 创建一个整数指针数组,然后使用 malloc 来创建第二维。这是我的代码:
enter code here
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N,M,i=0,j=0;
printf("Give the dimensions");
scanf("%d%d",&N,&M);
printf("You gave N: %d and M: %d\n",N,M);
int **a=(int**)calloc(N,sizeof(int*));
for(i=0; i<N; i++)
{
a[i]=(int*)malloc(M*sizeof(int));
}
printf("The array that was created resigns on addresses\n");
for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
{
printf("addr: %p\n",a[i,j]);
}
}
}
有了这个,我想确保我创建了我想要的数组。给出维度 N=2 和 M=2(只是一个例子),我取地址(例如): (0,0): 0x00001, (0,1):0x00003, (1,0): 0x00001, (1 ,1): 0x00003。因此,我没有得到一个二维数组,而只是一个只有 2 个位置的简单数组。你能指出我的编码错误吗?没找到。。。:S