Пытанні з тэгам '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