LINUX.ORG.RU

Память функций C/C++


0

0

Вот пусть, например, есть пограммка 1.c след. содержания: int main() { double ver[1500000]; int i=0; return 0; }

# gcc 1.c -o 1 # ./1 Segmentation fault

Это, вообще, что значит? (Память под неглобальные переменные ограничена?)

★★

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

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

Эх, говорили мне люди, учи матчасть, ассемблер (который из институтской программы по информатике исключили) и все дела. Рано или поздно прийдётся фтыкать во все эти стеки...

mr ★★
() автор топика

Цитата:

Because computers are finite, C++ implementations are inevitably limited
in the size of the programs they can successfully process. Every
implementation shall document those limitations where known. This
documentation may cite fixed limits where they exist, say how to compute
variable limits as a function of available resources, or say that fixed
limits do not exist or are unknown.

-2- The limits may constrain quantities that include those described
below or others. The bracketed number following each quantity is
recommended as the minimum for that quantity. However, these quantities
are only guidelines and do not determine compliance.

........


    * Size of an object [262144]. 

........

dilmah ★★★★★
()

Не, а всё же на вскидку не понятно, почему именно глобальным переменным какой угодно объём можно занимать (лишь бы памяти хватило), а локальным нет.

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

> Не, а всё же на вскидку не понятно, почему именно глобальным переменным какой угодно объём можно занимать (лишь бы памяти хватило), а локальным нет.

глобальные переменные могут занять не какой угодно объем памяти лишь бы хватило, а до предела data size установленного для данного процесса

dilmah ★★★★★
()

хм... эта # неспроста =]

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

Мммм... Довольно загадочные эти места, однако.

Игра угадайка, раунд 1. Эти места находятся в ОЗУ?

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

2mr:

>Мммм... Довольно загадочные эти места, однако.

>Игра угадайка, раунд 1. Эти места находятся в ОЗУ?

Ну, либо чего сам почитай (Zenom (08.03.2006 0:48:24) ключевые слова подкинул), либо задавай "правильные" короткие вопросы, без сарказма. Это действительно _основы_, а тут не детский сад...

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

Ну, просто настроение весёлое. Программка у меня одна сегфолтилась (не эта :))). Много часов потратил, пока не понял, что дело в локальных переменных. Вот такой юмор.

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

Ёх-ты, помогло.

Полезное замечание. Спасибо!

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