在 C/C++ 中似乎是一个常识,在函数完成之前new/malloc
应该有一些内存的函数,对吧?delete/free
但是假设我有这样的问题,有一个函数reader
会从文件中读取块到缓冲区,还有另一个函数consumer
会消耗这些缓冲区,
void reader(ifstream &ifs)
{
char *buf = new char[100];
ifs.read(buf, 100);
save_buffer(buf); //save this buf into a global array, say buf_array[10]
}
void consumer()
{
for(int i = 0; i < 10; i++)
consume( buf_array[i] ); //do something with those buffers read by reader
}
我的问题是,很多内存资源都new
在里面reader
,但reader
不能delete
,因为这些缓冲区没有被consumer
. 应该consumer
负责delete
ing 那些缓冲区?