进程意外退出,return 值为 3221225477

Process exits unexpectedly with the return value of 3221225477

我的程序突然退出,return 值为 3221225477。下面是代码:

#include<iostream>

using namespace std;
const int MAX_VALUE=-1;
int main(){
    int* numbers= NULL;
    int capacity=0;
    int size=0;
    while(true){
        int number;
        cout<<"Enter number: ";
        cin>> number;
        if(number==MAX_VALUE) break;
        if(size==capacity){
            numbers= new int[(sizeof(int)*(size+1))];
        }
        numbers[size]=number;
        size++;
        capacity++;
    }
    
    for(int i=0;i<size;i++){
        cout<< "You inputted: "+numbers[i];
    }
}

这是输出的图片:

https://pasteboard.co/Jn6SBBQ.png

(我尝试从这里的内置编辑器通过 imgur 上传它,但它给我一个无法访问 imgur 的错误)

这一行:

cout << "You inputted: " + numbers[i];
                      // ^ incorrect

您正在将 int 添加到 char[15]。如果 int 大于数组的大小,cout 将尝试打印位于无效内存中的数组,这会调用未定义的行为。这可能会导致程序崩溃或 return 一些错误代码。

相反,您需要这样做:

cout<< "You inputted: " << numbers[i];