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