运行时检查失败#3 - 正在使用变量'menuChoice'而未初始化

时间:2012-08-24 17:09:41

标签: c++ runtime

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

#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;

}

3 个答案:

答案 0 :(得分:3)

int menuChoice;
while (!exit)
{

    switch (menuChoice)

您期望menuChoice是什么? 1? 0? 42?

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

答案 1 :(得分:1)

您永远不会将menuChoice设置为任何内容。你申报并立即使用它。

答案 2 :(得分:1)

您使用单位化变量。这个检查调试是好事,但如果你将项目切换到发布版本 - 你的代码将工作取决于“月相”。因此,在使用之前,始终将变量初始化一些值。