c++ - 如何返回值为 NULL 的变量指针
问题描述
我正在做一个涉及遍历节点链表的项目,为了做到这一点,我需要能够检查 Node.next() 是否有值或者它是否为 NULL。目前我正在使用
if (node->GetNext()==NULL){
//do stuff
}
但我为此遇到了分段错误。
//Funcion in LinkedList class
void LinkedList::InsertEnd(Node* newNode){
if (m_head==NULL){
m_head=newNode;
cout << "Node set as m_head\n";
}else{
Node* temp = m_head;
int i=1;
do{
temp=temp->GetNext();
}while(temp->GetNext()==NULL);
temp->SetNext(newNode);
cout << "Node added at index" << i << endl;
}
cout << "Node inserted successfully\n\n";
}
//Node class
Node::Node(){
m_next = nullptr;
}
Node::Node(bool value){
m_value = value;
m_next = nullptr;
}
void Node::ReplaceValue(){
m_value = !m_value;
}
void Node::SetNext(Node* next){
m_next = next;
}
Node* Node::GetNext(){
return m_next;
}
bool Node::GetValue(){
return m_value;
}
Node::~Node(){
}
InsertEnd
应该添加newNode
到当前链接列表的末尾,但是当我GetNext
在节点类中调用时,我得到了这个分段错误
Program received signal SIGSEGV, Segmentation fault.
0x0000000000401278 in Node::GetNext (this=0x0) at Node.cpp:21
21 return m_next;
解决方案
做检查只需做 -
while(temp->next != NULL)
{
//do stuff
}
推荐阅读
- javascript - Tensorflow.js 请确保使用变量的操作在传递给minimize()的函数f内
- node.js - 查询 Mongodb 适用于终端但不适用于节点 js
- f# - 获取一条指令抛出的最后一条错误消息
- scala - 如何在 Spark Shell 中映射三个不同类型的元素?
- c++ - 使用 fstream 从 txt 文件中循环数字
- sql - SQL Server - INSERT 语句与 FOREIGN KEY 约束冲突
- react-native - 反应导航警告:“jumpToIndex 不是函数”
- r - R:编写一个返回向量的两阶段函数
- php - Godaddy 的问题 - AWS WordPress 网站
- angular - Angular - 迭代中的动态 CSS 类