struct P
{
int z;
int* arr;
};
int main()
{
struct P* p=(struct P*)malloc(sizeof(struct P));
if(p == NULL)
{
printf("%s \n",strerror(errno));
}
else
{
p->arr=(int*)malloc(4*sizeof(int));
if(p->arr == NULL)
{
printf("%d \n",strerror(errno));
}
else
{
p->z=100;
int j=0;
for(j=0;j<4;j++)
{
p->arr[j]=j;
}
printf(" ");
for(j=0;j<4;j++)
{
printf("%d ",p->arr[j]);
}
printf("\n");
printf(" %d \n",p->z);
free(p->arr);
p->arr=NULL;
printf("%d \n",sizeof(p));
free(p);
p=NULL;
}
}
}
改变struct P 为什么一直创建成功
改变p->arr的malloc参数为什么,p的内存大小始终不变