我最近在尝试使用链表时遇到了一个问题。当我使用一个函数来链接一个在其数据字段中有一个字符串的新节点时,它不起作用。我的意思是当函数(linkin() 见下文)返回时,字符串(函数的本地)被破坏,因此字符串字段似乎未初始化。
但是,当我使用 int 执行完全相同的操作时,它似乎工作得很好。我使用的代码如下(它的 int 版本,但将 val 设为字符串而不是 int 以查看其他版本)。有人可以向我解释发生了什么吗?
谢谢!
struct testlist {
int val;
testlist *next;
};
void linkin ( testlist *a );
int main() {
testlist test;
linkin(&test);
cout << test.next->val <<endl;
}
void linkin ( testlist *a )
{
testlist b;
b.val=1;
a->next = &b;
cout << a->next->val <<endl;
}