Запитання з тегом «memory-management»

Процес динамічного розподілу та звільнення частин фізичної пам’яті з метою відповіді на запити програми з можливістю справедливості та без голоду серед запитувачів.

9
Коли ви виходите з програми C, чи автоматично звільняється вимкнена пам’ять?
Скажімо, у мене є такий код С: int main () { int *p = malloc(10 * sizeof *p); *p = 42; return 0; //Exiting without freeing the allocated memory } Коли я компілюю та виконую цю програму C, тобто після виділення деякого місця в пам'яті, чи буде виділена ця пам'ять, …

5
memory_get_peak_usage () з “реальним використанням”
Якщо real_usageаргумент встановлений trueяк PHP DOCS, скажімо, він отримає реальний розмір пам'яті, виділеної із системи. Якщо це такfalse це отримає пам'ять, про яку повідомляєemalloc() Який із цих 2 варіантів повертає макс. пам'ять, виділена щодо граничного значення пам'яті у php.ini? Я хочу знати, наскільки близьким був сценарій, щоб досягти цієї межі.

2
Чи має Python стек / купу і як управляється пам'яттю?
Як управляються змінними та пам'яттю в Python? Чи має він стек і купу і який алгоритм використовується для управління пам'яттю? З огляду на ці знання, чи існують рекомендації щодо управління пам’яттю для великого числа / даних?

6
Початкова ємність вектора в C ++
Що таке capacity()a, std::vectorякий створений за допомогою конструктора за замовчуванням? Я знаю, що size()нуль. Чи можемо ми стверджувати, що сконструйований за замовчуванням вектор не викликає виділення купи пам'яті? Таким чином можна було б створити масив з довільним резервом, використовуючи єдине виділення, наприклад std::vector<int> iv; iv.reserve(2345);. Скажімо, з якихось причин я …

11
Як отримати використання пам'яті під час виконання за допомогою C ++?
Мені потрібно отримати пам’ять VIRT та RES під час роботи моєї програми та відобразити їх. Що я намагався до цього часу: getrusage ( http://linux.die.net/man/2/getrusage ) int who = RUSAGE_SELF; struct rusage usage; int ret; ret=getrusage(who,&usage); cout<<usage.ru_maxrss; але я завжди отримую 0.

3
Попередження про пам'ять ОС iPhone. Що означають різні рівні?
Щодо чорного мистецтва управління пам’яттю на пристроях з ОС iPhone: що означають різні рівні попередження про пам’ять. 1 рівень? 2 рівень? Циферблат переходить на 11? Контекст: Після тривалого періоду стрес-тестування пам’яті, включаючи запуск програми iPad для програвання музичного програвача iPod, я схильний ігнорувати випадкові, але рідкісні попередження про пам’ять, які …

7
чому обсяг пам'яті стека настільки обмежений?
Коли ви розподіляєте пам'ять у купі, єдиним обмеженням є вільна оперативна пам'ять (або віртуальна пам'ять). Це робить Gb пам'яті. То чому розмір стека настільки обмежений (близько 1 Мб)? Яка технічна причина заважає вам створювати по-справжньому великі об’єкти в стеку? Оновлення : Мої наміри можуть бути незрозумілими, я не хочу розподіляти …

6
Навіщо мені std :: get_temporary_buffer?
З якою метою я повинен використовувати std::get_temporary_buffer? Стандарт говорить наступне: Отримує покажчик на сховище, достатнє для зберігання до n сусідніх T об’єктів. Я думав, що буфер буде виділено на стек, але це неправда. Відповідно до стандарту C ++ цей буфер насправді не є тимчасовим. Які переваги має ця функція перед …

12
Чому `free` у C не бере кількість байтів, які потрібно звільнити?
Щоб зрозуміти: я знаю це mallocі freeреалізовано в бібліотеці C, яка зазвичай виділяє фрагменти пам’яті з ОС та здійснює власне управління для парцеляції менших обсягів пам’яті додатку та відстежує кількість виділених байтів . Це питання не в тому, як безкоштовні знають, скільки безкоштовно . Швидше, я хочу знати, чому взагалі …

8
malloc для структури та вказівника в C
Припустимо, я хочу визначити структуру, що представляє довжину вектора та його значення, як: struct Vector{ double* x; int n; }; Тепер, припустимо, я хочу визначити вектор y і виділити для нього пам’ять. struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector)); Мій пошук в Інтернеті показує, що я повинен виділити пам’ять для …

11
Чи доречно * не * використовувати вільний () у виділеній пам'яті?
Я вивчаю комп’ютерну техніку і маю кілька курсів електроніки. Я чув від двох моїх професорів (з цих курсів) , що можна уникнути з допомогою free()функції (після того, як malloc(), calloc()і т.д.) , так як простору пам'яті , виділені , ймовірно , не використовуватиметься знову , щоб виділити іншу пам'ять. Тобто, …

4
Завдання C - Призначити, скопіювати, зберегти
Я новачок у цілі C. У мене є базові знання з мови C, включаючи поняття покажчиків. У мене є два основних питання: Хтось може пояснити різницю між присвоєнням, копіюванням та збереженням за допомогою якоїсь аналогії? Як ви обробляєте функцію, яка повертає змінну покажчика, і як ви виконуєте обмін повідомленнями через …

5
Конфлікт між підручником у Стенфорді та GCC
Згідно з цим фільмом (близько хвилини 38), якщо я маю дві функції з однаковими місцевими варі, вони будуть використовувати той самий простір. Отже, наступну програму слід надрукувати 5. Складання його з gccрезультатами -1218960859. чому? Програма: #include <stdio.h> void A() { int a; printf("%i",a); } void B() { int a; a …

13
Як знайти причину помилки «подвійного звільнення» від malloc?
Я програмую програму в Objective-C, і я отримую цю помилку: MyApp (2121,0xb0185000) malloc: *** помилка для об'єкта 0x1068310: подвійний безкоштовний *** встановити точку зупинки в malloc_error_break для налагодження Це відбувається, коли я випускаю NSAutoreleasePool, і я не можу зрозуміти, який об'єкт я випускаю двічі. Як встановити його точку зупинки? Чи …

4
У чому різниця між __слабким та __блоковим посиланням?
Я читаю документацію Xcode, і ось щось мене бентежить: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; З документації копіюється: Блок формує сильне посилання на змінні, які він фіксує. Якщо ви використовуєте selfвсередині блоку, блок формує сильне посилання на self, тому, якщо воно selfтакож має сильне посилання …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.