Не получается освобождать память
Имеется функция:
void mem_init(char *mem_buf)
{
mem_buf = new char[2<<20];
memset(mem_buf,0,(2<<20));
}
На вход функции идет указатель, потом производится обработка (в данном случае заполняю нулями).
В главной функции вызываю ее, скажем, 100 раз:
for(int i=0;i<100;i++)
{
char *c;
mem_init(c);
delete[] c;
}
После вызова delete[]
память чудесным образом не освобождается (смотрю Диспетчером задач Windows). В чем подвох?
С уважением maxspb.
Источник: Stack Overflow на русском