程序在2个输入后崩溃

时间:2014-06-06 04:52:57

标签: c++ arrays void

这个程序将编译并且除了输入2个输入之后的一切,它都会崩溃 它只有2个输入,不是1,不是3,只有2,每次都会发生。

我正在尝试使用输入来填充数组然后我想使用我的第一个数组来填充我的多维数组的第一个数组

     #include <iostream>
const int COUNTER_NUMBER = 10;

void insert_array(int input[], int outputa[][COUNTER_NUMBER], int&number_vars);


int main()
{   
    using namespace std;
    int index1, index2, next, number_vars;
    int inputa[50];
    int outputa[50][COUNTER_NUMBER];
    cout << "type numbers you would like to input up to 50 inputs, press n if you would like to end\n";
    int index = 0;
    cin >> next;
    while ((next != 'n') && (index < 50))
    {
        inputa[index] = next;
        index++;
        cin >> next;
        index = number_vars;
    }
    insert_array(inputa, outputa, number_vars);

return 0;
}

void insert_array(int inputa[], int outputa[][COUNTER_NUMBER], int& number_vars)
{
    int index1 = 0;
    int index = 0;
    int inputb = 0;
    for (index1 = 0; index1 < number_vars; index1++)
    {
        for (index = 0; index < number_vars; index++)
        inputa[index] = inputb;
        inputb = outputa[index1][COUNTER_NUMBER];
    }
}

1 个答案:

答案 0 :(得分:4)

index = number_vars;

您尚未初始化number_vars。因此,下次您尝试访问index时,您将获得未定义的行为。

我猜你的意思是反过来

number_vars = index;

编辑:
查看代码,您根本不需要变量index。只需使用number_vars而不是index(初始化为0并在每次读取操作时递增)。