Qt (C++)로 작성한 응용 프로그램에서 메모리 누수가 발생했습니다. 그리고 문제는 그 라인에 있다고 생각합니다.QVector :: replace()는 딥 카피를 생성합니까?
for(int i=0; i<DATA_LENGTH;i++){
cdata1->replace(i,data->at(i));
}
cdata1 QVector는이 데이터가 QList이다.
내가 replace()를 사용하는 이유는 데이터의 길이가 일정하기 때문입니다. 그리고 매번 QVector를 만들고 싶지 않았습니다. QVector는 라인 객체 생성자에서 초기화 :
cdata1 = new QVector<double>(DATA_LENGTH,0);
Qt는 문서는 const가 아닌 연산자를 사용하는 QVector 깊은 사본을 할 원인이 될 수 있음을
주를 말한다.
replace() 함수는 deep copy를 발생 시키거나 어떻게 이해할 수 있습니까?
'데이터'에는 무엇이 들어 있습니까? –
데이터는 다음과 같이 초기화 도구에서 초기화됩니다. data = new QList(); 그리고 두 배로 채워져 있습니다. data.append(); –
HeyYO
여기에 누출이 보이지 않습니다. 이중 값을 값으로 복사하면 누수가 없습니다. –