ФлеймФорумПрограммирование

Работа с памятью в Си/С++

#0
16:36, 3 янв 2014

1) Можно ли найти указатель на самый младший не занятый блок памяти?
2) Можно ли выделить память по указанному адресу?

#1
16:39, 3 янв 2014

ialexbr
Напиши свой ололокатор.

#2
16:44, 3 янв 2014

ialexbr
> 1) Можно ли найти указатель на самый младший не занятый блок памяти?
да
0x00000000

ialexbr
> 2) Можно ли выделить память по указанному адресу?
нет, первые 64кб недоступны для чтения или записи

если ты хочешь написать более оптимальный менеджер памяти то гугли в сторону VirtualAlloc. он умеет выделять кусок в определенном месте. ну и там же где-то рядом есть функция получения карты памяти

#3
16:52, 3 янв 2014

ialexbr
Вроде один из вариантов прошляться по содержимому памяти процесса были функции, работающие в паре с CreateToolhelp32Snapshot:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682489.aspx
Учтите что за время пути собака могла подрасти. карта памяти могла измениться.

VirtualAlloc и снэпшоты - это все про винду. Рассказывайте какая ос вас интересует.

Вообще все что вам нужно - вам скорее всего не нужно и это нужно делать другим способом, а не так как вы подумали, так что подробнее рассказывайте задачу.

Вам нужно общение между процессами?

#4
16:58, 3 янв 2014

ialexbr
> 1) Можно ли найти указатель на самый младший не занятый блок памяти?
> 2) Можно ли выделить память по указанному адресу?

И да и нет, причём нет гораздо более категоричное.
Если мы пишем приложение то вопросы аллокации и доступности памяти определяются ОСью, а не приложением (лол, а как иначе то).
Но с другой стороны C/C++ имеет прямой доступ к памяти ему доступной и где то в ядре возможно так сказать многое. За исключением совсем уж ассемблерно-специфичных штучек.
Т.е. да, вопрос надо полностью переформулировать. Начать просто с того с чем именно возник вопрос.

#5
0:46, 6 янв 2014

Хотелось бы написать свой менеджер памяти.. Я так понимаю стандартные функции типа malloc на самом деле реализованы через соответствующие функции ОС?

#6
1:34, 6 янв 2014

Прочитай Linux Kernel Development (Robert Love), оно помогает от любых вопросов, связанных с ОС.

ФлеймФорумПрограммирование

Тема в архиве.