使用malloc函数模拟开辟一个3*5的整型二维数组,开辟好后,使用二维数组的下标访问形式,访问空间。
第一种方法 用二级指针调用空间
int main()
{
int** p = (int**)malloc(3 * sizeof(int*));//开辟二级指针
//(数组中每个元素为一级指针也可以说每个元素指向一维数组)
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
*(p+i) = (int*)malloc(5 * sizeof(int)); //给二级指针中每一个一级指针开辟一个空间(一维数组)
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
p[i][j] = j;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ", p[i][j]);
}
printf("\n");
}
for (i = 0; i < 3; i++)
{
free(p[i]);
}
free(p);
return 0;
第二种方法 运用指针数组
int main()
{
int(*p)[5] = (int(*)[5])malloc(3 * 5 * sizeof(int)); //开辟一个指针数组,指针指向的为5个元素的一维数组
int i;
int j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
p[i][j] = j;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
free(p);
p = NULL;
return 0;
}