自过去两天以来,我一直在解决一个问题,但作为一个相当缺乏经验的程序员,我认为这很正常。我的问题可能有一个简单的解决方案,但我找不到快速参考,所以决定问其他人。
在应用程序的一个线程中,我创建了new
一个指向用户定义类的指针。紧接着,我将新创建deque
的指针推入指向这个用户定义类的指针中,push_back()
方法是。
这个被关注的双端队列已经从应用程序的主函数传递到这个线程,这个用户定义类的内容在主循环中处理。因此,当一个新指针进入双端队列时,它会被主线程接收并使用。
我的问题是我需要确保分配给此类内容的内存在使用后应该被释放,因为它们存储非常大的图像数组。否则,程序会崩溃。为此,我在线程delete
中调用后立即使用push_back()
,假设内存最终是空闲的,但仅存储在deque
. 但是,显然,in 指针指向的地址的内容deque
也被删除了。这不是我想要的。
有没有办法将两者解耦,也许不引入指针?我认为new
并且delete
仅在指针中有效。更准确地说,有没有办法将这个类的内容传递给deque
然后删除它,而不影响deque
?