istream& operator>>(istream& in,hhh& hh){
double *arr,*temp;
int i=0;
char c;
c=in.peek();
while(c!='\n'){
if(i>=1){
temp=new double[++i];
for(int j=0;j<i-1;j++){
temp[j]=arr[j];
}
arr=temp;
}
else {
arr=new double[++i];
}
in>>arr[i-1];
c=in.peek();
}
hh.set(arr,i);
delete [] arr;
return in;
}
我有內存泄漏嗎?我試圖弄清楚我有沒有但我不確定,謝謝你的幫助。C++我有內存泄漏嗎?
你這樣做。在寫'arr = temp;'之前,首先你必須'delete [] arr;'。 (另外,初始化'temp'和'arr'爲'nullptr',這樣你就可以安全地'刪除']它們了。) – 2013-08-17 11:53:38
瞭解如何使用'std :: vector'。 –
milleniumbug