Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 198
Благодарности: 51

Профиль | Отправить PM | Цитировать


malloc является системным вызовом, он запрашивает память в куче у ОС.
free также является системным вызовом, он освобождает участок памяти в куче.
ОС хранит информацию о выделенной памяти в своих внутренних структурах, к которым оно и обращается при вызове malloc , free, таким образом ОС знает сколько памяти надо освободить.
t = (int*) malloc(5); - выделит лишь 5 байт, а вам надо t = (int*) malloc(5*sizeof(int)); - 5 элементов типа int (на 32бит архитектуре - 20 байт)
Цитата nikit-xxx:
Теперь t указывает на самую первую ячейку памяти, отведённую для типа int ? »
Именно так.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:59, 12-05-2011 | #5