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);提示段错误,而我再申明一个指针来指向他,这样输出才是对的呢?
修改如下,供参考:
#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;
}
你这指针没有指向struct student的对象
请问你的p指向的是个什么东西 ==、
一个指针必须要指向一个同类型的变量才能用