堆栈推送导致严重错误

Geo*_*ber 4 c++ stl

我是C++的新手,目前正在使用STL容器.我遇到了一个严重的问题nodeStack.push(startnode)- 编译器显示了一个

检测到严重错误c0000374

Followign代码显示发生上述错误的函数:

vector<int> Graph::iterativeDepthSearch(map<int, vector<int>> adjlist, int startnode) {
    stack<int> nodeStack;
    vector<int> visitList;

    // Knotenbesuchsliste initialisieren
    int* val = new int(adjlist.size());
    for (int i = 0; i < (int) adjlist.size(); i++) {
        val[i] = 0;
    }

    int cnt = 1;
    nodeStack.push(startnode);
    ....
}
Run Code Online (Sandbox Code Playgroud)

行中出现错误nodeStack.push(startnode);,startnode初始化为0.

tot*_*two 15

尝试int* val = new int[adjlist.size()];你当前正在分配一个int并初始化它的值,而不是分配一个int数组.

堆栈结构正在损坏,因为它位于内存堆栈中的指针旁边.