Jacky~~ 2021-09-12 11:06 采纳率: 40%
浏览 25
已结题

函数返回值类型为指针,出现段错误。

struct student{
int age;
int sex;
};
int main(){
struct student *p;
p->sex=1;
p->age=20;
struct student *q;
q=p;
/printf("age:%d\n",p->age);
printf("sex:%d\n",p->sex);
/
printf("age:%d\n",q->age);
printf("sex:%d\n",q->sex);
return 0;
}

为何我这样输出printf("age:%d\n",p->age);
printf("sex:%d\n",p->sex);提示段错误,而我再申明一个指针来指向他,这样输出才是对的呢?

  • 写回答

4条回答 默认 最新

  • qzjhjxj 2021-09-12 11:22
    关注

    修改如下,供参考:

    #include<stdio.h>
    struct student{
           int age;
           int sex;
    };
    int main()
    {
         struct student *p;//p 这里只是一个指针
         p = (struct student *)malloc(sizeof(struct student));
         p->sex=1;
         p->age=20;
         struct student *q;
         q=p;
         printf("age:%d\n",p->age);
         printf("sex:%d\n",p->sex);
         printf("age:%d\n",q->age);
         printf("sex:%d\n",q->sex);
         
         return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 9月12日