为什么p一进入循环就变成无效的指针了

来源:5-1 Linux C 动态数据结构-静态链表

慕粉233007138

2017-08-05 21:32

#include <stdio.h>

#include <stdlib.h>



typedef struct weapon

{

char name;

int money;

struct weapon *next;

}lianbiao;


int main(void)

{

lianbiao a,b,c,*head;

lianbiao *p;


a.name = '1';

a.money = 1;

b.name = '2';

b.money = 2;

c.name = '3';

c.money = 3;

head = &a;

a.next = &b;

b.next = &c;

c.next = NULL;

p = head;

while(p!=NULL)//在这里就变成了无效的指针在之前p还正常

{

printf("%s,%d\n",p->name,p->money);

p->next;

}

system("pause");

return 0;

}


写回答 关注

3回答

  • Index303
    2020-12-13 20:04:23
    1. while循环结束时给p赋值应为p = p -> next

    2. p->name的数据类型为c,将%s改为%c即可

  • 爆炸帅气鄢
    2020-07-01 16:12:24

    倒数第五行p->next;改成p=p->next;

  • 慕圣6674348
    2017-08-07 09:27:01

    p->next;改为p=p->next  你需要重新把指针给p  %s改为%%c

Linux C语言结构体

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

118294 学习 · 162 问题

查看课程

相似问题