阁龙1427 发表于 2016-6-2 14:10:16

结构体指针

#include <stdio.h>

struct stu
{
char name;
long number;
float score;
} ;

int main(void)
{
       
       
struct stu *p1, *p2 ;       
p1->number = 100;
p2->number = 200;

printf("%d\n,%d\n",p1->number,p2->number);       

while(1)
{
        ;
        }
       
}

报错:
30 StrPtr 3300 _cygtls::handle_exceptions: Error while dumping state
(probably corrupted stack)
Segmentation fault (core dumped)

请帮忙分析哪里有段错误

阁龙1427 发表于 2016-6-2 14:45:55

找到问题了,错误有2:
1-野指针错误!
2-没有给新的结构体分配内存。更改后的代码如下:
#include <stdio.h>

struct stu
{
char name;
long number;
float score;
} ;

int main(void)
{
struct stu *p1=NULL, *p2=NULL ;       

p1 = (struct stu*)malloc(sizeof(struct stu));
p2 = (struct stu*)malloc(sizeof(struct stu));
p1->number = 100;
p2->number = 200;

printf("%d\n,%d\n",p1->number,p2->number);       

while(1)
{
        ;
}
       
}
页: [1]
查看完整版本: 结构体指针