我要给结构体分配空间,语法疑问。

为什么这样不行:structstudent*allocate(){allocate=(structstudent*)malloc(sizeof(structstudent... 为什么这样不行:
struct student* allocate(){
allocate=(struct student*)malloc(sizeof(struct student)*10);

return(allocate); /*return the pointer*/
}

而改成这样就可以呢? allocate不是指针么?不可以直接把malloc返回的指针发给allocate?

struct student* allocate(){
student* allocate=(struct student*)malloc(sizeof(struct student)*10);
return(allocate); /*return the pointer*/
}
展开
 我来答
晗月冰风
2012-10-02 · TA获得超过112个赞
知道答主
回答量:90
采纳率:0%
帮助的人:125万
展开全部
是编译错误对吧。
上面的allocate你没有声明是什么类型的指针。就像没法用a=8来给a赋一个int值一样,因为编译器不知道a的类型。
下面的声明里明确声明了 allocate是student类型的指针,当然就可以赋值了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式