Въпроси с етикет „разпределяне на динамична памет“

Динамичното разпределение на паметта, обикновено в контекста на езици без събиране на отпадъци или задължително или автоматично отчитане на референтни данни, се отнася до процес или изисква операционна система за блок с памет с променлива големина.
25
отговор

Какво и къде са стека и купчината?

Книгите в програмните езици обясняват, че типовете стойности се създават в стека, а типовете справки се създават в купчината, без да се обяснява какво представляват тези две неща. Не съм чел ясно обяснение за това. Разбирам какво е стак. Но, къде и какво са те (физически в ...
на 17 сеп. '08 в 7:18
9
отговор

Разликата между разпределението на статичната памет и динамичното разпределение на паметта

Бих искал да знам каква е разликата между разпределението на статичната памет и динамичното разпределение на паметта? Бихте ли обяснили това с някакъв пример?
настройте 05 декември '11 в 15:30
4
отговор

Дали нови и изтрити все още са полезни в C ++ 14?

Като се има предвид наличието на make_unique и make_shared, както и автоматичното изтриване на unique_ptr и shared_ptr от деструкторите, какви са ситуации (освен поддържането на остарял код) за използване на нови и изтриване в C ++ 14?
на 10 юни 15 в 20:12
11
отговор

Ефективен свързан списък в C ++?

Този документ казва, че std :: list не е ефективен: std :: list е много неефективен клас, който рядко е полезен. Той изпълнява разпределение на купчината за всеки елемент, вмъкнат в него, затова има изключително висок постоянен коефициент ...
Задайте 16 август '17 в 18:44
5
отговор

Извикан ли е деструкторът, когато обект излезе от обхвата?

Например: int main () {Foo * leedle = new Foo (); return 0; } клас Foo {private: somePointer * bar; public: Foo (); ~ Foo (); }; Foo :: ~ Foo () {изтриване на лентата; } Дали деструкторът ще бъде имплицитно извикан от компилатора или ще ...
е настроен на 17 юли'13 в 17:45 часа
4
отговор

Защо програмата ми се срива, когато инкрементирам показалеца и го изтрия?

Реших някои упражнения по програмиране, когато осъзнах, че имам голямо недоразумение по отношение на указателите. Моля, някой може да обясни причината, поради която този код се срива в C ++. #include <iostream> int main () {...
на 16 декември '16 в 15:08
5
отговор

Кога и защо се използва malloc?

Е, не мога да разбера кога и защо да разпределям памет с malloc. Тук е моят код: #include <stdlib.h> int main (int argc, const char * argv []) {typedef struct {char * име; * секс; int age; } студент; // Сега аз ...
на 10 януари '12 в 11:40 часа
2
отговор

нов оператор за разпределяне на паметта в куп

Гледах подпис на новия оператор. Това е: void * оператор new (std :: size_t размер) хвърля (std :: bad_alloc); Но когато използваме това твърдение, никога не използваме гласове. int * arr = new int; И така, как C ++ превръща показалеца ...
набор 09 февруари '11 в 9:02
6
отговор

Pimpl идиом без използване на динамично разпределение на паметта

Искаме да използваме идиома pimpl за някои части от нашия проект. Тези части на проекта са също части, където динамичното разпределение на паметта е забранено и това решение не е под наш контрол. Затова питам дали има чисто и ...
настроено 07 фев '11 в 16:38
4
отговор

Защо средата на изпълнение не може да приложи delete или delete [] вместо програмист?

Прочетох, че операторът delete [] е необходим, защото по време на изпълнение не се съхранява информация за това дали избраният блок е масив от обекти, които изискват разрушители или не, но всъщност съхранява информация за това къде в паметта е ...
настройте 06 декември '11 в 21:46
3
отговор

Защо да използвате _mm_malloc? (за разлика от _aligned_malloc, alligned_alloc или posix_memalign)

Има няколко опции за получаване на вграден блок памет, но те са много сходни и проблемът основно се свежда до това какъв език е стандартът и платформата, към която се насочвате. C11 невалидни * matching_alloc (size_t изравняване, size_t размер) PO ...
на 16 септември '15 в 18:30 часа
4
отговор

Как да разпределяте динамично паметта чрез компилации и системни обаждания под Linux

Търся добри примери за кодове за разпределяне на динамична памет, използвайки асемблер под Linux и използвайки системни обаждания, а не malloc и приятели. Какви са някои от най-простите, но ефективни начини да направите това? На компютъра ...
настроен на 06.05 '10 в 17:54
5
отговор

Смесване на новия оператор [] и поставяне на нов с обичайното изтриване []

Само от любопитство, законно ли е? X * p = static_cast <X *> (оператор new [] (3 * sizeof (X))); new (p + 0) X (); new (p + 1) x (); new (p + 2) x (); delete [] p; // Мога ли да използвам delete [] тук? Или това е неопределено поведение? По същия начин: ...
настроен на 27 юни '11 в 19:02
4
отговор

Динамично разпределение на паметта за масиви с указатели

Опитвам се да напиша програма, която чете в поредица от редове от текстов файл и ги съхранява в масив от низове, като динамично разпределя паметта за всеки елемент. Планът ми беше да запазя всеки ред в масив с помощта на декрет ...
Задайте 28 септември '13 в 18:40
3
отговор

Разберете поведението на новия треньор

Четох на Scott Meyers "Effective C ++ 55" и зададох въпроса от клауза 49: Когато оператор new не може да попълни заявка за памет, той извиква new-handler докато намери достатъчно памет. Една добре проектирана newhandler функция трябва да изпълнява една ...
набор 16 февруари '15 в 15:33