我正在尝试减轻内存泄漏。
显然,最好的解决方案是首先不要泄漏内存。
但就我而言,我需要查看现有的指针,并确定其中的任何指针是否是动态分配的,是否需要删除。
给定特定的地址/指针,C ++是否提供确定给定地址是否指向堆的方法?
奖金:
C ++是否提供一种方法来确定是否需要使用delete[]
vs平原删除给定的堆地址delete
?
在C ++(和C)中,指针指向任何地址。要知道您要指向的内存类型,您需要查看进程内存映射。这将是特定于平台的。
在Linux上,/proc/<pid>/maps
文件包含此信息。
但是,即使指针指向堆,如果它是新指针的增量(认为是数组),或者是使用malloc
代替分配的,它仍可能无法删除new
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句