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'에 초기화하여 안전하게'삭제 '할 수 있습니다.) –
'std :: vector'을 사용하는 법을 배우십시오. –
milleniumbug