malloc怎么返回结构体指针数组的首地址
问题描述:
typedef struct student{
int id;
}s ,*sp;
main(){
sp p1=(sp)malloc(10*sizeof(sp)); // 假设1
sp * p2=(sp *)malloc(10*sizeof(sp)); // 假设2
}
如果我要malloc一个长度为10 的结构体指针数组的话
假设1 和假设2 哪个返回了结构体指针数组的首地址?
哪个正确呢
答
sp * p2=(sp *)malloc(10*sizeof(sp));
p2 既是指针的首地址。。
答
我觉得是假设2,p2应该充当数组名,保存数组首元素的地址,即指针的指针
答
我也觉的是假设2,有人说是假设1 。所以贴上来问一问