Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

kvaDrug

Виртуальная память

Рекомендованные сообщения

Что это такое? И какая связь тут с функциями calloc и malloc в С?

Поделиться сообщением


Ссылка на сообщение

 

виртуальная память, если вкратце, схема адресаций, при которой каждая программа использует физическую память независимо

 

 

Функция calloc выделяет в памяти массив размера num*size, где num - количество элементов, а size - их размер

 

 

Функция malloc возвращает указатель на блок размером не менее size байт, который можно использовать в произвольных целях

Поделиться сообщением


Ссылка на сообщение

calloc еще и обнуляет память вроде  :hmm: но не уверен, я всегда маллок юзаю  :trollface:

 

 

виртуальная память ("куча") - это, если просто, твоя оперативка. Каждый байт памяти имеет свой адрес.

часть в куче занята системой и другими программами. Часть доступна. И эту часть ты можешь забрать у ОС себе используя функции malloc, calloc, realloc в С и new в С++. Они возвращают тебе указатель на первый байт выделенной памяти, если выделили конечно, мало ли, ты всю оперативку засрал  :trollface: .

Как сделал с памятью, что надо - возвращаешь ее ОС с помощью free в С и delete в С++


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

calloc:

 

All the space between the end of the data segment and the top of the program stack is available for use in the tiny (DOS only), small and medium data models,except for a small margin immediately before the top of the stack. This margin allows room for the application to grow on the stack, and provides a small amount of room needed by the operating system.

 

malloc

 

Allocates main memory.The heap is used for dynamic allocation of variable-sized blocks of memory. Many data structures, for example, trees and lists, naturally employ heap memory allocation.

 

For 16-bit programs, all the space between the end of the data segment and the top of the program stack is available for use in the small data models, except for a small margin immediately before the top of the stack. This margin is intended to allow the application some room to make the stack larger, in addition to a small amount needed by DOS.

 

Что за main memory и top of the program stack? Поясните кто эти абзацы, перевести могу, но смысла не улавливаю.

Поделиться сообщением


Ссылка на сообщение

×
×
  • Создать...