C ++控制台Application1.exe已触发断点,Visual Studio 2015.Array和随机数

时间:2016-11-30 15:52:58

标签: visual-c++ visual-studio-2015

我试图在VS 2015 c++中运行此代码,但我遇到了这个问题:在得到正确答案的同时,我也收到错误C++ Console Application1.exe has triggered a breakpoint。我的任务是随机选择1到50之间的10个数字,显示这些数字并按奇数和偶数对它们进行排序。提前谢谢。

#include<iostream>
#include<ctime>
using namespace std;
void main() {
    const int size = 10;
    srand(time(NULL));
    int arr[size], odd = 0, even = 0;
    for (int i = 0; i < size; i++)
    {
        arr[i] = rand() % 50 + 1;
        cout << arr[i] << '\t';
    }
    cout << endl;
    int *arrOdd = new int[odd];
    int *arrEven = new int[even];
    for (int i = 0; i < size; i++)
    {
        if (arr[i] % 2 == 0) {
            arrEven[even] = arr[i];
            even++;
        }
        else
        {
            arrOdd[odd] = arr[i];
            odd++;
        }
    }
    int a = 0, b = 0;
    for (int i = 0; i < size; i++)
        if (arr[i] % 2 == 0) {
            cout << "arrEven = " << arrEven[a] << endl;
            a++;
        }

        else
        {
            cout << "arrOdd = " << arrOdd[b] << endl;
            b++;
        }

    system("pause");
}

1 个答案:

答案 0 :(得分:2)

int arr[size], odd = 0, even = 0;
//odd's and event's dont change
//...
int *arrOdd = new int[odd];
int *arrEven = new int[even];

所以你试图分配长度为0的数组