首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三重网格-内存泄漏

三重网格-内存泄漏
EN

Stack Overflow用户
提问于 2015-06-14 18:12:43
回答 1查看 173关注 0票数 0

我使用三角网格库来计算三角网格的每个顶点上的曲率。为了做到这一点,我做了以下工作:

代码语言:javascript
复制
 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的输出:

代码语言:javascript
复制
 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: pthread_create@@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() 

有什么办法来解决这个问题吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-06-16 04:17:06

912 bytes in 3 blocks are 可能是 lost in loss record 5 of 13

可能的损失可能只是缓存或指针技巧,912字节几乎不是问题。除非它有几兆字节,否则我会忽略它,特别是如果它在库中,而不是在你的代码中。

对于这个问题,它真的应该是一个更大的东西,并且通常是随着运行时间的延长而增长的行为。如果每次调用的大小是1千字节,而您正在执行数千或数百万次,则需要将其报告给库创建者

简而言之,没有证据表明是真正的泄密。

在循环中运行它,看看它是否在不稳定的情况下显著增长,否则您可以忽略它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30828155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档