结构体中经常碰到的一个错误 undeclared identifier

淡淡的烟草味﹌ 2022-08-04 13:40 233阅读 0赞
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. struct student{
  4. //定义一个学生结构体
  5. char name[30];
  6. int age;
  7. }stu = {
  8. "zhangsan", 30};
  9. int main(){
  10. struct student *pStudent;
  11. struct student *ps;
  12. ps = (student *)malloc(sizeof(struct student));
  13. return 0;
  14. }

在上面的简单代码中,本来是为了测试malloc方法的使用,结果碰到这个错误,不过倒是挺好,平时经常遇到!
总结为一句:总之有碰到定义结构体类型的时候,struct关键字绝对不能少
像上面的代码部分,错误就出在动态分配内存的那条语句,应该改成:

  1. ps = (struct student *)malloc(sizeof(struct student));

值得提出的是,这函数的返回值为指针类型,具体指针类型为何值,不确定,必须进行强制转换。

发表评论

表情:
评论列表 (有 0 条评论,233人围观)

还没有评论,来说两句吧...

相关阅读