我是C++的新手,我試圖讓用戶不斷輸入雙精度數組,當用戶輸入-1時程序停止。該代碼我的作品,但在12個項目被添加到陣列我得到這些錯誤:保持增加數組大小C++
*** glibc的檢測*** ./exercise2:雙重釋放或腐敗(出):0x00000000010aa070 ***
=======回溯:=========
和:
中止(核心轉儲)
這是我的代碼:
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++;
}
}
爲什麼你不使用'std :: vector'? – Wyzard
這是一種學習練習嗎?在C++中,這樣做的適當方法是使用std :: vector或std :: list。 – ApplePie
numbers2在執行memcpy時不會大於數字。 – Joe