未分配正在释放的C++指针.没有免费电话
C++ Pointer being freed was not allocated. Not calling free
我正在编写一个处理视频输入的程序,运行一段时间后,它有时会退出,并显示"释放的指针未分配"。然而,在我的程序中,我从来没有称之为free或malloc。我正在传递我在向量中定义的类的对象,程序使用pthreads将输入与处理分离。除了在同一指针上调用free两次而不在两者之间重新分配之外,还有什么可能导致这个问题?
不幸的是,由于错误发生需要很长时间,而且由于多线程,我不知道这个错误发生在哪里,所以我不能包含我的代码示例。
您可能需要研究使用C++11中提供的安全指针。它们做了很多好事,但对你来说,最好的用途是为你处理内存分配。
这是您需要使用的库。
从您分享的一些信息来看,我相信共享指针就是您想要的(但也要看看其他类,在应用程序的某些部分可能需要弱共享指针和唯一指针)。
如果你还有其他问题,请问一个具体的问题。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- 存储在堆分配向量中的指针的免费存储
- 应用地址清理器后,免费无效指针消失
- 使用lambda在功能指针铸造时双免费
- Malloc,免费和多个指针,它是如何工作的
- 共享指针:为什么没有双免费
- 这些指针中的哪一个需要免费()或delete()
- 作业帮助,分割故障,双免费或腐败,免费():无效的指针
- 从基本指针/参考调用正确的免费功能
- 标记了 C 中的锁定免费列表的指针
- int &a = b 使 'a' 成为 C 4.8.1 中指向 'b' 的指针,但在 C 中不是,为什么?(参考电话)
- 为什么在这里返回一个 malloc'd 指针会导致免费"HEAP CORRUPTION"?
- 未分配正在释放的C++指针.没有免费电话