0
我正在使用Trimesh庫來計算三角網格的每個頂點的曲率。要做到,我做:Trimesh - 泄漏內存
TriMesh *m = TriMesh::read(this->fichier);
m->need_curvatures();
float *degres= new float[nbr_vertices];
for(int i=0;i<nbr_vertices;i++)
{
degres[i]=m->curv1[i]; // get the curvature
}
delete [] degres; m->clear(); delete m;
的問題是檢測連我清楚,並刪除 「* M」 泄漏內存。 泄漏記憶被「valgrind」檢測到。
這是Valgrind的輸出:
912 bytes in 3 blocks are possibly lost in loss record 5 of 13
==4239== at 0x4C2CC70: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4239== by 0x4012E54: _dl_allocate_tls (dl-tls.c:296)
==4239== by 0x5174DA0: [email protected]@GLIBC_2.2.5 (allocatestack.c:589)
==4239== by 0x599C905: ??? (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==4239== by 0x4C67D2: trimesh::TriMesh::need_normals() (in /home/spin/spin)
==4239== by 0x4B203D: trimesh::TriMesh::need_curvatures()
任何想法來解決這個問題?
謝謝。
如果你使用valgrind,發佈它的輸出,但只是mem漏洞片段 –
好吧,我把我的第一條消息放在 – ananass
這可能是Trimesh發生內存泄漏。你可以使用-g編譯你的程序,並且禁用OpenMP並再次運行它,然後發佈Valgrind的輸出? – hayesti