LINUX.ORG.RU

нубский вопрос по malloc

 ,


1

4

когда malloc возвращает 0? в общем набыдлокодил макрос, чтобы не проверять возвращаемое из malloc

#define GET_MEM(p,s) for(p=NULL;!(p=calloc(1,s));perror("calloc"))
как думаете, не нужно? и чем чревато?

★★★

Последнее исправление: IvanR (всего исправлений: 1)
Ответ на: комментарий от TrueTsarC

THIS IS AAAAAAARM!!!11

~> gcc malloc.c -o malloc -std=c99 -O2
~> file malloc
malloc: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0x64e0fd1b7c9a004780d42870cffc46ec1c24400e, not stripped
~> ./malloc
3041: oops! address space exhausted
(nil)

Куллстори. Более жиденько надо ещё умудриться обделаться.

Чувак, ты русский язык вообще понимаешь? Слово «никогда», например. «никогда» != «никогда на моей любимой платформе с моими любимыми флагами компиляции»

AptGet ★★★
()
Ответ на: комментарий от Eddy_Em

Дата регистрации: 21.01.2015 22:47:13

Что как бы очевидно.

post-factum ★★★★★
()
Ответ на: THIS IS AAAAAAARM!!!11 от AptGet

THIS IS AAAAAAARM!!!11

THIS IS ГОВНО одинодин Дело не в арм"е.

Куда дел m32? Нахрен ты решил приплести арм о котором ты выше не кукарекал?

Слово «никогда», например.

Ты это к чему?

«никогда» != «никогда на моей любимой платформе с моими любимыми флагами компиляции»

На каком основании ты вывел это неравенство? Там не было указано «где», поэтому «никогда» может быть интерпретировано как угодно.

Меня не интересует бесполезное говно. Я уже говорил это сотни раз. Я никогда не говорил «везде», да и пацан тоже.

TrueTsarC
()
Ответ на: комментарий от TrueTsarC

Куда дел m32?

Он нинужин.

Нахрен ты решил приплести арм о котором ты выше не кукарекал?

Чего ты несешь? Я про архитектуру вообще ничего не писал и про x86 в частности тоже.

Ты это к чему?

К тому:

На каком основании ты вывел это неравенство? Там не было указано «где», поэтому «никогда» может быть интерпретировано как угодно.

От оно как!

Меня не интересует бесполезное говно. Я уже говорил это сотни раз. Я никогда не говорил «везде», да и пацан тоже.

Фильтруй базар, поцанчик, еба. Бочина за тобой. За слова свои, бля, ответить не можешь.

AptGet ★★★
()
Ответ на: комментарий от AptGet

Он нинужин.

Обсёр - то ты собирал на х86, а потом когда серанул с легаси говном - высрал армку.

Чего ты несешь? Я про архитектуру вообще ничего не писал и про x86 в частности тоже.

Ещё раз, ты высрал вначале х86(собрал на нем, но с м32), а потом почему-то начал кукарекать про арм. Вернее арм тут не причём - тут причём 32битное говнище, но просто «THIS IS 32BIT!!!11» ты кукарекнуть не мог, ибо 386-й питух - это не аргумент, а протухшее говно. Именно по этой причине ты свичнулся на арм, который а) убогий зпр по причине soc-рамы б) Под это говно с мму ничего не сишке не пишется, только портируется. в) без мму - это оффтопик.

Это зпр исключение из правил, любые другие не легаси мму платформы имеют чуть больше, чем пару гигов адреспейса.

К тому:

Ну дак к чему? Нечего ответить?

От оно как!

О5 же, 3-х извилин не хватает на ответ?

Фильтруй базар, поцанчик, еба.

Кто ты такое, что ты мне что-то вякать? Что ты мне можешь противопоставить? Яж раздавлю тебя как таракана.

За слова свои, бля,

Жалкая попытка на выпил ветки с обсёром призывами к модератору. Какие такие мои слова? Ты же мне цитатку предоставишь, где я говорил, что маллок не возвращает 0? Я говорил только о том, что его проверять не имеет смысла и то с оговоркой «в нормальном коде».

Далее, даже если взять цитатку пацана, то он не говорил везде и поймать на «никогда» ты его не можешь, ну покрайней мере с твоими 3-мя извилинами.

Т.е. ты обосрался по всем фронтам, что ты мне тут предъявляешь?

не можешь

Ты ответил за своё балабольства, свои неравенства? Нет, ты обосрался. Уличи меня в чем-то?

TrueTsarC
()
Ответ на: комментарий от post-factum

этот царь не только не настоящий, но и унылый. На кой ляд настоящего забанили?! Он похоже обиделся, и радует всех на винфаке.

(.*)ВИМ!

emulek
()
Ответ на: комментарий от tailgunner

SIGFAULT

Плакал.

ты нихрена не понимаешь в линуксах! Он вот возьмёт, и завтра релиз своей ОС на ХТМЛ выложит!

emulek
()
27 февраля 2015 г.
Ответ на: комментарий от Sorcerer

Но calloc() из eglibc всё равно вызывает memset(), заставляя ядро предоставить реальную память процессу. :(

Поправлю себя. На самом деле calloc() из [e]glibc вызывает memset() только при первом вызове после старта программы. Остальные разы calloc() поступает умнее, т.е. не вызывает memset(), если выделенный кусок был получен от mmap().

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