к alloc, malloc и очень - Какая разница?

у меня сложилось впечатление, что alloc в Objective-C (когда мы вызываем [anyObject alloc] фактически реализует функцию C malloc и память, выделенная в куче, но не смогла найти нигде ответа на этот вопрос.

кроме того, при поиске alloc, Я нашел alloca, которая выделяет память в стеке. Если я не ошибаюсь, alloc выделяет память в куче для создания объектов.

так, в чем разница между alloc и mallocalloca)? Кто-нибудь может подвести итог?

2 ответов


alloc() не является стандартной функцией библиотеки C. Некоторые старые компиляторы и библиотеки содержат <alloc.h> библиотека, которая предоставляет некоторые функции выделения памяти, но это не стандарт. Среда выполнения Microsoft Visual C++ включает в себя


на alloc функция используется для выделения области или блока байтов размера по длине heap.

на