在 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负责deleteing 那些缓冲区?