Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
链表删除功能异常 我有一些研究要做的是即将到来的C++评估,我的DELTENENODE函数有问题。我知道问题存在于函数的某个地方,因为我复制了以前的deleteNode函数,它工作得很好。我所有的其他pushback/pushfront函数都工作得很好,我宁愿知道问题,也不愿忽略它,但我一生都无法发现它_C++ - Fatal编程技术网

链表删除功能异常 我有一些研究要做的是即将到来的C++评估,我的DELTENENODE函数有问题。我知道问题存在于函数的某个地方,因为我复制了以前的deleteNode函数,它工作得很好。我所有的其他pushback/pushfront函数都工作得很好,我宁愿知道问题,也不愿忽略它,但我一生都无法发现它

链表删除功能异常 我有一些研究要做的是即将到来的C++评估,我的DELTENENODE函数有问题。我知道问题存在于函数的某个地方,因为我复制了以前的deleteNode函数,它工作得很好。我所有的其他pushback/pushfront函数都工作得很好,我宁愿知道问题,也不愿忽略它,但我一生都无法发现它,c++,C++,因此,链表存储的是员工姓名(字符串)和工资(双倍)。My deleteNode与传入的员工姓名和字符串参数匹配。如果有人能发现我的错误,那将对我的学习大有帮助 bool EmployeeList::deleteNode(std::string n){ EmployeeNode *leadptr = head, *trailptr = nullptr; if (head != nullptr){ if (head->emp.name == n){ head = he

因此,链表存储的是员工姓名(字符串)和工资(双倍)。My deleteNode与传入的员工姓名和字符串参数匹配。如果有人能发现我的错误,那将对我的学习大有帮助

bool EmployeeList::deleteNode(std::string n){
EmployeeNode *leadptr = head, *trailptr = nullptr;

if (head != nullptr){
    if (head->emp.name == n){
        head = head->next;
        delete leadptr;
        return true;
    }
    else{
        while (leadptr != nullptr && leadptr->emp.name != n){
            trailptr = leadptr;
            leadptr = leadptr->next;
        }
        if (leadptr = nullptr){
            return false;
        }
        else{
            trailptr->next = leadptr->next;  //access violation here, leadptr may be null
            delete leadptr;
            return true;
        }
    }
}
}
这是一项任务

    if (leadptr = nullptr){
更正将是

    if (leadptr == nullptr){

if(leadptr=nullptr)
您需要
=
在这里。@Mark Lordan在编译时打开所有警告,或者至少阅读您收到的警告消息时,这很容易被检测到。@πάνταῥεῖ 我没有收到任何警告消息,只是一个访问冲突,没有任何有用的信息。你能解释一下我是如何得到这些警告选项的吗?@MarkLordan取决于你的工具链,但是对于GCC来说,它是
-Wall
@MarkLordon这样的错误已经被编译器发现了(它们只是被称为警告:警告是你代码中的逻辑错误)。您的代码应该编译为零警告。您可以让编译器用一个简单的标志将警告视为错误,这样您就可以看到这些逻辑错误。我还将增加警告的攻击性(更多的旗帜打开更多的警告)。