Пределы и ограничения malloc() free()

Модератор: Модераторы разделов

demetrius2003
Сообщения: 59

Пределы и ограничения malloc() free()

Сообщение demetrius2003 »

Доброго всем времени суток!
Очередной глупый вопрос. Допустим на чистом Си мне надо работать с подобием динамического массива. Массив ОЧЕНЬ большой. Где гарантия того, что один и тот же исходник скомпиленный под win32 скажем в Quincy и в Linux будет одинаково способен переварить этот массив. Понимаю, что ситуация скорее гипотетическая, но всё же. Где ограничения на возможные размеры выделяемой памяти? В менеджере памяти самой ОС? Т. е. понятно, что кто-то скажет "хватит" быстрее своего оппонента. Как спрогнозировать возможности? Или пока не попробуешь не узнаешь?
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Пределы и ограничения malloc() free()

Сообщение Nazyvaemykh »

Это в какой-то степени зависит от разрядности системы и объемов доступной оперативной памяти.
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 860
Статус: Оператор вычислительных машин
ОС: Debian

Re: Пределы и ограничения malloc() free()

Сообщение Janik »

И ещё вроде как от размера страницы. Кстати, как определить размер страницы?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Пределы и ограничения malloc() free()

Сообщение eddy »

Janik писал(а):
21.04.2011 19:30
Кстати, как определить размер страницы?

man getpagesize
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Пределы и ограничения malloc() free()

Сообщение Crazy »

Ну выдаст malloc NULL, в чем проблема?

Desipere in loco
Спасибо сказали:
Аватара пользователя
Reboot
Сообщения: 321
Статус: Красен глаз -- темна душа

Re: Пределы и ограничения malloc() free()

Сообщение Reboot »

Ну выдаст malloc NULL, в чем проблема?

А Вы в этом никакой проблемы не видите? (:
Мой компьютер зовут Марвин
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Пределы и ограничения malloc() free()

Сообщение deadhead »

Crazy писал(а):
21.04.2011 22:07
Ну выдаст malloc NULL, в чем проблема?
разве что при

Код: Выделить всё

$ cat /proc/sys/vm/overcommit_memory
2

а так, скорее всего, OOM-killer вмешается и из malloc'a уже никогда не вернетесь...
[x] close
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Пределы и ограничения malloc() free()

Сообщение Crazy »

Reboot писал(а):
21.04.2011 23:37
Ну выдаст malloc NULL, в чем проблема?

А Вы в этом никакой проблемы не видите? (:

Просто надо подумать, как решать задачу с ограниченным объемом памяти.

Desipere in loco
Спасибо сказали: