结构体指针 疑问

weixin_43664176 2019-02-20 05:32:58

#include <stdio.h>
#include <stdlib.h>

struct Node {
int x;
};

struct Node *pHead = (struct Node *)malloc(sizeof(struct Node));

int main(){

}


环境是CodeBlocks + GNU GCC Compiler,上面代码的第8行在文件名为.c后缀结尾时编译会报错,错误信息为:initializer element is not constant,而后缀名是.cpp时则可以正常编译成功。

还请知道的同学不吝赐教,谢谢大家!
...全文
43 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2019-02-20
  • 打赏
  • 举报
回复
C语言中 静态存储类型(包括外部变量 static局部变量) 要用编译期常量初始化
malloc 是运行期才能得到数据
所以报错了

C++没这限制

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧