c++ - 循环在单链表节点创建中无限执行
问题描述
struct SinglyLinkedListNode{
int data;
SinglyLinkedListNode* next = NULL;
};
SinglyLinkedListNode* init(int data){
SinglyLinkedListNode *newNode = (SinglyLinkedListNode*)malloc(sizeof(SinglyLinkedListNode));
newNode -> data = data;
**Line 1**
newNode -> next = NULL;
return newNode;
}
如果我没有指定next
new Node
asNULL
那么我的循环将无限运行。为什么呢?
创建新时不会next
自动设置为:NULL
Node
SinglyLinkedListNode *newNode = init(5);
解决方案
分配的内存malloc()
没有初始化。如果你不初始化newNode->next
字段,它的值将是不确定的,这会给你的链表带来问题。
推荐阅读
- hibernate - 由于 LazyInitializationException,无法从 Entity 读取数据
- r - mle 估计参数失败,错误代码 7
- arrays - Applescript Excell将列保存在数组中,但将行保存为字符串
- powershell - 如何在 UWP 中运行 PowerShell 命令?
- docker - 如何从 docker 中的一个容器中查看其他容器?
- java - 如何在 Selenium Webdriver 中检索 aria-hidden 属性?
- html - 打印页面时如何显示div中的所有内容
- python - 将单行 DataFrame 对象操作为 6x6 DataFrame
- javascript - 在原生 android 浏览器中调试网站在 AVD(android studio) 中运行
- kubernetes - Kubernetes kubelet 更新节点状态时出错