LINUX.ORG.RU

Разумеется, будет. И при передаче структуры в 10М будет.

Spectrum
()

Наверное, от стандарта/реализации зависит? Помнится, в Борланде было что-то дикое а-ля COW... Или это было в Борландовском Паскале?

(IMHO передача структур по значению -- признак дурного тона).

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

Все известные мне компиляторы Си действуют, как описано выше. Передача структур по значению иногда бывает и полезной, например если её размер не на много больше, чем размер указателя (классич. пример - структура datum из GDBM, содержащая указатель и длину, в сумме на i386 это 8 байт).

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

не всегда это возможно: например, вам надо изменить полученное значение и передать в другую функцию.

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

anonymous (*) (16.01.2006 20:27:41):

> не всегда это возможно:...

Круто!

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

видимо имелось ввиду, что состояние изначально переданного
объекта не должно минятся ( то есть состояние объекта константно )

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

незачем, копию такого ( большого ) объекта нужно создовать на хипе

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

2aton:

> ...состояние изначально переданного объекта не должно минятся...

никак не могло иметься в виду под anonymous (*) (16.01.2006 20:27:41):

> ...вам надо изменить полученное значение и передать в другую функцию.

Очевидно, aton (16.01.2006 21:37:58) следует понимать как "исходное состояние переданного объекта ..." -- anonymous'а (16.01.2006 20:27:41) все так и поняли.

Как справедливо заметил Pi, это и есть чушь.

Die-Hard ★★★★★
()

тоесть насколько я понял ограничением является вмещаемость в стек??

мне было интересно рассмотреть альтернативны вариант malloc/memcpy

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

Скажем так, размер стека для параметров функции известен ещё на этапе компиляции, так что этими ограничениями можно пренебречь (единственное исключение - какой-нибудь там gcc 0.5.0 :) ).

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

Скажем так, при вызове подфункции указатель на старый стек сохраняется и создаётся новый, а после выхода восстанавливается. Всё равно максимальный размер известен.

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