#include <iostream>
using namespace std;
struct Node
{
char item;
Node *next;
};
void inputChar ( Node * );
void printList (Node *);
char c;
int main()
{
Node *head;
head = NULL;
c = getchar();
if ( c != '.' )
{
head = new Node;
head->item = c;
inputChar(head);
}
cout << head->item << endl;
cout << head->next->item << endl;
printList(head);
return 0;
}
void inputChar(Node *p)
{
c = getchar();
while ( c != '.' )
{
p->next = new Node;
p->next->item = c;
p = p->next;
c = getchar();
}
p->next = new Node; // dot signals end of list
p->next->item = c;
}
void printList(Node *p)
{
if(p = NULL)
cout << "empty" <<endl;
else
{
while (p->item != '.')
{
cout << p->item << endl;
p = p->next;
}
}
}
该程序一次从用户处输入一个字符,然后将其放入链接列表。然后,printList尝试打印链接列表。在main中调用printList之前的cout语句可以正常工作,但是由于某些原因,printList函数在while循环中挂断了。
最佳答案
if(p = NULL)
那就是你的问题。它应该是
if(p == NULL)
关于c++ - 为什么我的printList函数不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1892050/