Питання з тегом 'dynamic-memory-allocation'

Динамічний розподіл пам'яті, зазвичай в контексті мов без збору сміття або обов'язкового або автоматичного підрахунку посилань, відноситься до процесу або запрошувати операційну систему для блоку пам'яті зі змінним розміром.
25
відповідей

Що і де знаходяться стек і купа?

Книги на мовах програмування пояснюють, що типи значень створюються в стеку, а посилальні типи створюються в купі, не пояснюючи, що це за дві речі. Я не прочитав чіткого пояснення цього. Я розумію, що таке стек. Але, де і що вони (фізично в ...
заданий 17 сент. '08 в 7:18
9
відповідей

Різниця між розподілом статичної пам'яті і розподілом динамічної пам'яті

Я хотів би знати, в чому різниця між розподілом статичної пам'яті і розподілом динамічної пам'яті? Чи не могли б ви пояснити це за допомогою будь-якого прикладу?
заданий 05 дек. '11 о 15:30
4
відповідей

Нові та видалити всі ще корисні в С ++ 14?

З огляду на наявність make_unique і make_shared, а також автоматичне видалення деструкторами unique_ptr і shared_ptr, які ситуації (крім підтримки застарілого коду) для використання new і delete в С ++ 14?
заданий 10 червня '15 о 20:12
11
відповідей

Ефективний пов'язаний список в С ++?

Цей документ говорить, що std :: list неефективний: std :: list - вкрай неефективний клас, який рідко буває корисний. Він виконує розподіл купи для кожного елемента, вставленого в нього, тому має надзвичайно високий постійний коеф ...
заданий 16 Серпня. '17 о 18:44
5
відповідей

Викликається деструктор, коли об'єкт виходить з області видимості?

Наприклад: int main () {Foo * leedle = new Foo (); return 0; } Class Foo {private: somePointer * bar; public: Foo (); ~ Foo (); }; Foo :: ~ Foo () {delete bar; } Чи деструктор неявним чином викликаний компілятором або буде ...
заданий 17 липня '13 о 17:45
4
відповідей

Чому моя програма падає, коли я збільшую покажчик і видаляю його?

Я вирішував деякі вправи з програмування, коли зрозумів, що у мене велике непорозуміння щодо покажчиків. Будь ласка, хто-небудь може пояснити причину, по якій цей код викликає збій на С ++. #include <iostream> int main () {...
заданий 16 дек. '16 о 15:08
5
відповідей

Коли і навіщо використовувати malloc?

Ну, я не можу зрозуміти, коли і навіщо потрібно виділяти пам'ять за допомогою malloc. Ось мій код: #include <stdlib.h> int main (int argc, const char * argv []) {typedef struct {char * name; char * sex; int age; } Student; // Now I c ...
заданий 10 Січня. '12 о 11:40
2
відповідей

новий оператор для розподілу пам'яті в купі

Я дивився підпис нового оператора. Що є: void * operator new (std :: size_t size) throw (std :: bad_alloc); Але коли ми використовуємо цей оператор, ми ніколи не використовуємо приведення. тобто int * arr = new int; Отже, як С ++ перетворює указат ...
заданий 09 февр. '11 в 9:02
6
відповідей

Ідіома Pimpl без використання динамічного розподілу пам'яті

ми хочемо використовувати ідіому pimpl для деяких частин нашого проекту. Ці частини проекту також є частинами, де динамічний розподіл пам'яті заборонено, і це рішення не знаходиться під нашим контролем. Так що я питаю, чи є чистий і ...
заданий 07 февр. '11 о 16:38
4
відповідей

Чому Виконавча не може застосувати видалення або видалення [] замість програміста?

Я читав, що потрібен оператор delete [], тому що Виконавча не зберігається інформацію про те, чи є виділений блок масивом об'єктів, які потребують виклики деструктора чи ні, але фактично зберігає інформацію про те, де в пам'яті є ...
заданий 06 дек. '11 о 21:46
3
відповідей

Навіщо використовувати _mm_malloc? (на відміну від _aligned_malloc, alligned_alloc або posix_memalign)

Існує кілька варіантів для отримання вибудуваного блоку пам'яті, але вони дуже схожі, і проблема в основному зводиться до того, якою мовою стандарт і платформи ви орієнтуєтеся. С11 void * aligned_alloc (size_t alignment, size_t size) PO ...
заданий 16 сент. '15 о 18:30
4
відповідей

Як динамічно розподіляти пам'ять за допомогою збірок і системних викликів під Linux

Я шукаю хороші приклади коду для розподілу динамічної пам'яті з використанням мови асемблера під Linux і використання системних викликів, а не malloc і друзів. Якими є деякі з найпростіших, але ефективних способів зробити це? На комп'ютера ...
заданий 06 травня '10 о 17:54
5
відповідей

Змішування оператора new [] і розміщення нового зі звичайним видаленням []

Просто з цікавості, чи є законним? X * p = static_cast <X *> (operator new [] (3 * sizeof (X))); new (p + 0) X (); new (p + 1) X (); new (p + 2) X (); delete [] p; // Am I allowed to use delete [] here? Or is it undefined behavior? Аналогічно: ...
заданий 27 червня '11 о 19:02
4
відповідей

Динамічний розподіл пам'яті для масивів покажчиків

Я намагаюся написати програму, яка читає в послідовності рядків з текстового файлу і зберігає їх в масиві рядків, динамічно виділяючи пам'ять для кожного елемента. Мій план полягав у тому, щоб зберігати кожен рядок в масиві за допомогою указу ...
заданий 28 сент. '13 о 18:40
3
відповідей

Зрозуміти поведінку нового обробника

Я читаю "Ефективний С ++ 55" Скотта Мейерса і задаю питання з пункту 49: Коли operator new не може виконати запит пам'яті, він викликає new-handler, поки не знайде достатньо пам'яті. Добре спроектована функція newhandler повинна виконати одн ...
заданий 16 февр. '15 о 15:33