不断收到处理错误.导致我的程序中断

Keep getting a handling error. Causing my program to break

本文关键字:我的 程序 中断 错误 处理      更新时间:2023-10-16
void push(char name, int key)
{
    Node *character = NULL;
    character->link = tos;
    name = character->data;
    key = character->precedence;
    push(character);
};

我的两个例外:

First-chance exception at 0x011460C2 in Program Assignment 2new.exe: 0xC0000005: Access violation writing location 0x00000008.
Unhandled exception at 0x011460C2 in Program Assignment 2new.exe: 0xC0000005: Access violation writing location 0x00000008.

此外,tos是之前在我的代码中已经定义的指针。

声明一个 Node 类型的指针"字符"并使其为 null。你从来没有真正在这个指针上称呼"新"。必须调用 new 来创建字符实例,否则字符>链接没有有效的内存位置,并且将出现异常。

*记得也调用删除以恢复空间。

    void push(char name, int key)
    {
        Node *character = new (std::nothrow) Node;
        if(0 != character){
            character->link = tos;
            name = character->data;
            key = character->precedence;
            push(character);
        }
        else{
             //Give an error message
       }
    }

是我将如何重写您必须避免一些错误。

最初,您将字符设置为 NULL,然后尝试访问它,这是未定义的行为。

相关文章: