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 哪个返回了结构体指针数组的首地址?
哪个正确呢

3个回答

 sp * p2=(sp *)malloc(10*sizeof(sp)); 

p2 既是指针的首地址。。

我觉得是假设2,p2应该充当数组名,保存数组首元素的地址,即指针的指针

我也觉的是假设2,有人说是假设1 。所以贴上来问一问

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问