c++ - 内存泄漏,来源 : float** binsRowPtrs = new float *[_nbins];

标签 c++ memory-leaks delete-operator

如何正确删除它?

float** binsRowPtrs = new float *[_nbins];

项目不是动态创建的。

float** binsRowPtrs = new float *[_nbins];
for (int i = 0; i < _nbins ;i++)
{
    binsRowPtrs[i] = (float*) (bins[i].row(y).data);
}

最佳答案

How do i delete this properly[?]

对吗?你使用 RAII 并让其他东西为你处理删除。根据您要执行的操作,您可能需要使用:

  • std::vector<std::vector<float>> : 一组 float ;
  • std::vector<float*> : 一组指向 float 的非拥有指针(即其他东西处理正确的分配和释放);
  • 或者可能只是 std::vector<float> : 一组 float 。

关于c++ - 内存泄漏,来源 : float** binsRowPtrs = new float *[_nbins];,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527726/

相关文章:

c++ - 在复制构造函数和赋值运算符中删除私有(private)数组

c++ - C++ 中的大小释放:全局运算符 delete(void* ptr, std::size_t size) 的正确行为是什么

javascript - 如何只删除 setter JS?

c++ - 尝试打开 TCP 套接字时出错 - C++

c++ - 依赖注入(inject);减少样板代码的良好做法

c++ - 我可以使用相同的名称为周围范围内的类型声明一个成员类型别名吗?

node.js - NodeJS + GCloud 日志记录中的内存泄漏

java - NavigableMap 的subMap 会导致内存泄漏吗?

c++ - 在 Linux 上运行的 C++ 程序中为函数计时

c - 移动指针后 C 中的内存泄漏问题(释放的到底是什么?)