LINUX.ORG.RU

Безопасные указатели в С и С++

 выстрелить в ногу


0

3

Привет всем.

Во время оно увлекался программированием на С и неожиданно наткнулся на непонятное мне в концепции языка место. Допустим у нас есть такой код:

type* foo()
{
	type *foo_ptr = (type*) malloc(TOO_LARGE_BUFFER);
	//.....Do it 
	return foo_ptr;
}
. Вопрос: будет ли после вызова этой функции возвращена память системе? Ведь насколько я понимаю в стеке окажутся и затем вытолкнутся всего 4 байта (в случае х86), а сама выделенная память может быть много больше по размеру. Как правильно проектировать подобный код?

Всем спасибо.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.