0

时间错误,我无法弄清楚一切看起来都很好。这是我的主要内容:

#include "DoublyLinkedList.h"
#include "Stats.h"
#include <iostream>
#include <string>
using namespace std;

DoublyLinkedList<int>* statsList = new DoublyLinkedList<int>;

int main()
{
    Stats stats;
    bool exit = false;
    int menuChoice;
    while (!exit)
    {

        switch (menuChoice)
        {
        case 1:
        cout << "Insert";
        {

        stats.Details();

        }
            break;
        case 2:
        cout << "Delete";
        {
        }

            break;
        case 3:

            break;
        case 5:

            break;
        case 6:

            break;
        case 7:
            exit = true;
        default:
            break;
        }
    }

    return 0;

}
4

3 回答 3

3
int menuChoice;
while (!exit)
{

    switch (menuChoice)

你期望menuChoice成为什么?1?0? 42?

这是从未初始化的行为读取的未定义行为,您应该感谢它警告您的运行时,从而防止潜在的错误。

于 2012-08-24T17:11:58.480 回答
1

你从来没有设置menuChoice任何东西。您声明它并立即使用它。

于 2012-08-24T17:10:20.457 回答
1

您使用未初始化的变量。这种调试检查是件好事,但是如果您将项目切换到发布版本 - 您的代码将取决于“月相”。因此,在使用之前,请始终将变量初始化为某个值。

于 2012-08-24T17:12:46.637 回答