希望帮忙解决这个关于内存的问题
#include<stdio.h>#include<stdlib.h>
struct a{
struct a *next;
int data;
}
main()
{
struct a *p;
p=(struct a*)malloc(5);
while(p!=NULL)
{
p++;
printf("%d->%d ",p,sizeof(p->data));
}
getchar();
free(p);
}
这是我原代码 测试的结果是 指针地址的差距大小为4 为什么?
所有数据的大小不是为2就是0 那个2又是 为什么?(包括上面分配5个字节也是显示的2)
希望能给个好的解释 谢谢