指针符号太多了 求解释每个指针符号
问:二重指针 太多 求解释一下各个
p=(int **)malloc(sizeof(int *)*line);
if(NULL==p)
{
return;
}
for(i=0;i<line;i++)
{
*(p+i)=(int *)malloc(sizeof(int)*row);
if(NULL==*(p+i))
{
return;
}
}
指针符号太多了 求解释每个指针符号
问:二重指针 太多 求解释一下各个
p=(int **)malloc(sizeof(int *)*line);
if(NULL==p)
{
return;
}
for(i=0;i<line;i++)
{
*(p+i)=(int *)malloc(sizeof(int)*row);
if(NULL==*(p+i))
{
return;
}
}
首先我来看malloc做了什么,申请了一组空间,存放int型指针,返回这组空间的首地址,所以定义int **p,定义一个指向指针的指针。首地址放到p中,而p就指向了这组数,而这组数本身是指针,即定义了一个指向指针的指针了。
你可以这么考虑现在假定有一个类型是int *,申请了一组空间放int *,返回的是指向这组数的地址,是不是都是int **p了;类比int *p = (int *)malloc(sizeof(int)*num);