- Правильная работа с памятью в обьектах., klalafuda, 10:04 , 11-Фев-05 (1)
- Правильная работа с памятью в обьектах., Android, 11:11 , 11-Фев-05 (2)
>http://ianzag.megasignal.com/ftp/pub/doc/books/book11/ru/ > >// wbr Спасибо за ссылку на хорошую книгу,но в ней этот вопрос раасматривается с точки зрения логического проектирования агрегирования классов.У меня с этим всё в порядке.Конкретизирую свой вопрос:В какой области памяти(сегмент данных, стек, куча) будет расположен обьект класса B в первом и втором случае? И как лучше его разместить чтобы не было перееполнения(если мне нужно агрегировать в обьект множество других "больших" обьектов) ? Буду признателен за ссылку на источник где подробно рассказывается о размещении обьектов в памяти(т.е где они размещаются при локальном/глобальном/выделении_при_помощи_new).Ещё раз спасибо.
- Правильная работа с памятью в обьектах., klalafuda, 11:20 , 11-Фев-05 (3)
>Спасибо за ссылку на хорошую книгу,но в ней этот вопрос раасматривается с >точки зрения логического проектирования агрегирования классов.У меня с этим всё в >порядке.Конкретизирую свой вопрос:В какой области памяти(сегмент данных, стек, куча) будет расположен >обьект класса B в первом и втором случае? >И как лучше его разместить чтобы не было перееполнения(если мне нужно агрегировать >в обьект множество других "больших" обьектов) ? >Буду признателен за ссылку на источник где подробно рассказывается о >размещении обьектов в памяти(т.е где они размещаются при локальном/глобальном/выделении_при_помощи_new).Ещё раз спасибо. http://ianzag.megasignal.com/ftp/pub/doc/books/c++/en/Addiso... - The C++ Programming Language (Special 3rd Edition).pdf // wbr
- Правильная работа с памятью в обьектах., klalafuda, 11:23 , 11-Фев-05 (4)
Конкретизирую свой вопрос:В какой области памяти(сегмент данных, стек, куча) будет расположен >обьект класса B в первом и втором случае?где создадите объект - там и будет располагаться. >И как лучше его разместить чтобы не было перееполнения(если мне нужно агрегировать >в обьект множество других "больших" обьектов) ? что в данном случае означает "переполнение" ? // wbr
- Правильная работа с памятью в обьектах., Android, 18:47 , 11-Фев-05 (5)
>что в данном случае означает "переполнение" ? Переполнение означает stack overflow. Просто мне хотелось бы разобраться где размещаются члены-данные обьекта. И если необходимо разместить буффер большого размера в нутри класса, то как лучше это сделать, просто обьявить или динамически выделить? Предположим имеется класс: class A { //... char big_buff[131072]; }; //Если мы его обьявим внутри функции: void func(void) { A a_obj; return; } //То буффер разместится в стеке и мы получим переполнение. //Второй способ: Class A { //... char *big_buff; A(); }; A::A() { big_buff=new char[131076]; }; //В этом случае буффер будет рассположен в "куче" и переполнения не будет, так? Прав ли я? Спасибо за внимание.
- Правильная работа с памятью в обьектах., DeadMustdie, 19:38 , 12-Фев-05 (6)
Могу ещё смешнее пример привести.class A { char big_buff[131072]; }; void func(void) { // Объект в куче A* a_obj1 = new A; // Объект на стеке A a_obj2; }
- Правильная работа с памятью в обьектах., Alexander S. Salieff, 17:09 , 14-Фев-05 (7)
Насколько мне представляется, ты прав. Т.е. действительно, если работаешь с большими объемами данных, и есть вероятность что они будут создаваться в стековом пространстве (точка создания лежит в контексте фции), то лучше использовать динамическое выделение во избежание переполнения стека.
|