继续增加C++的数组大小

use*_*267 -3 c++ arrays

我是C++的新手,我试图让用户继续将双打输入数组,当用户输入-1时程序停止.我的代码有效,但当12个项目添加到数组时,我得到以下错误:

***glibc检测到***./exercise2:双重免费或损坏(输出):0x00000000010aa070***
======= Backtrace:=========

和:

中止(核心倾倒)

这是我的代码:

int main(){
    int size=5;
    int i=0;
    double *numbers = new double[size];
    cout<<"Enter your double:"<<endl;

    while(1){
    double *numbers2=new double[size];

    cin>>numbers[i];

    if(i>=size-1){
        size=size*2;
        memcpy(&numbers2, &numbers, size);
        delete[]numbers;
    numbers=numbers2;
    }

    if(numbers[i]==-1){
        break;
    }
    cout<<numbers[i];
        i++;
    } 
}
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 5

我建议简化问题并使用 std::vector

#include <vector>

int main()
{
  std::vector<double> numbers;

  // get numbers and push into vector if valid
  double x;
  cin >> x;
  numbers.push_back(x):
}
Run Code Online (Sandbox Code Playgroud)