Запитання з тегом «malloc»

Функція malloc виконує динамічне розподілення пам'яті в C і входить до стандартної бібліотеки. Використовуйте цей тег для запитань щодо використання, поведінки та реалізації malloc.

2
Використовує malloc для невизначеної поведінки int до C ++ 20
Мені сказали, що наступний код має невизначену поведінку до С ++ 20: int *p = (int*)malloc(sizeof(int)); *p = 10; Це правда? Аргументом було те, що час життя intоб’єкта не починається до присвоєння йому значення ( P0593R6 ). Щоб вирішити проблему, newслід використовувати розміщення: int *p = (int*)malloc(sizeof(int)); new (p) int; …

8
Чому я отримую помилку про твердження C malloc?
Я впроваджую поліноміальний алгоритм поділу та завоювання, щоб я міг порівняти його з реалізацією OpenCL, але я не можу приступити mallocдо роботи. Коли я запускаю програму, вона виділяє купу речей, перевіряє деякі речі, а потім відправляє size/2алгоритму. Потім, коли я mallocзнову потрапляю в лінію, це випльовує це: malloc.c:3096: sYSMALLOc: Assertion …
85 c  gcc  malloc  assertion 

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

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

9
Чому malloc ініціалізує значення до 0 у gcc?
Можливо, це різниться від платформи до платформи, але коли я компілюю за допомогою gcc і запускаю наведений нижче код, я щоразу отримую 0 в моєму ubuntu 11.10. #include <stdio.h> #include <stdlib.h> int main() { double *a = (double*) malloc(sizeof(double)*100) printf("%f", *a); } Чому malloc поводиться так, хоча є мозоль? Чи …
78 c  linux  gcc  malloc 

6
Чи створює malloc ліниво допоміжні сторінки для розподілу на Linux (та інших платформах)?
Якби я malloc(1024 * 1024 * 1024)працював у Linux , що насправді робить malloc? Я впевнений, що він призначає віртуальну адресу виділенню (проходячи безкоштовний список і створюючи нове відображення, якщо це необхідно), але чи насправді це створює сторінки обміну на 1 ГіБ? Або це mprotectдіапазон адрес і створює сторінки, коли …
75 linux  malloc 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.