【发布时间】:2013-08-30 02:12:19
【问题描述】:
我不知道为什么我收到以下代码的警告。
#include<stdio.h>
#include<malloc.h>
int main()
{
int **p;
int i,j;
for(i=0;i<5;i++)
{
if(i==0)
p=(int*)malloc(1*sizeof(int));
else
p=(int*)realloc(p,(i+1)*sizeof(int));
p[i]=(int*)malloc(5*sizeof(int));
for(j=0;j<5;j++)
{
p[i][j]=j;
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",p[i][j]);
printf("\n");
}
return 0;
}
有没有其他方法可以为双指针动态分配内存。
【问题讨论】:
-
你能显示警告信息吗?
-
@Sashank,你想用这段代码做什么?
-
你为什么要使用动态分配
p开始?为什么不int *p[5];? -
@EricZ 我正在尝试通过将值插入通过动态分配内存创建的二维数组来实现演示程序。
-
@BenVoigt,我正在尝试使用双指针,为什么要使用双指针,因为您指定 int *p[5] 的片段您必须指定一个值,即行数,如果您不知道要创建多少行。
标签: c dynamic-memory-allocation double-pointer