Всем доброго времени суток!
собственно код:
#include <stdlib.h>
#define VERY_BIG 1024*1024*1024
int main (void)
{
char line[VERY_BIG];
char *p;
p = (char*)malloc(1);
free(p);
return 0;
}
Получаю SIGSEGV на маллоке, когда BIG больше некоторого значения. На разных ОС предельное значение разное. CPUx86, gcc4
И собственно вопросы: 1) Почему? 2) Где про это читать?
UP: Спасибо всем огромное, проблему понял. Массив line[VERY_BIG] съедает стек.
С проблемой столкнулся в проекте под QNX6. Там код далеко не такой игрушечный но суть та же.
PS: Первый раз пишу на ЛОР. В шоке от оперативности. Очень тронут. Всем еще раз спасибо.