我是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)
我建议简化问题并使用 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)