malloc
Выбирает блоки памяти.
void *malloc(
size_t size
);
Параметры
- size
Байты.
Возвращаемое значение
malloc возвращает пустой указатель на выделенную область или NULL если недостаточно памяти.Вернуть указатель на тип, отличный от voidиспользуйте приведение типов в возвращаемом значении.Гарантируется подходяще выравниваются объем памяти, заданный к возвращаемому значению для хранения любого типа объекта.Если размер 0 malloc выбирает элемент в нулевой длины куче и возвращает допустимый указатель к данному элементу.Всегда проверяйте вернуться из mallocдаже в том случае, если объем памяти мал запрошенного.
Заметки
malloc функция выделяет блок памяти по крайней мере size байты.Блок может быть больше size байты из-за необходимого места для выравнивания и обслуживания.
malloc наборы errno В ENOMEM, если выделение памяти завершается неудачей или, если объем памяти превышает требуемый _HEAP_MAXREQ.Дополнительные сведения об этом и других кодах ошибок см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.
Код использует запуска malloc выбор хранилища _environ" envpи argv переменные.Следующие функции и их аналоги расширенных символов также называется malloc.
|
|||
|
C++ _set_new_mode функция задает режим обработки для нового malloc.Новый режим ядра, указывающее, является ли при ошибке malloc новая процедура вызова обработчика в виде набора by _set_new_handler.По умолчанию malloc не вызывает новую процедуру обработчика при сбое выделить память.Можно переопределить используемую по умолчанию функциональности, что, когда malloc не удалось выделить память. malloc вызывает новую процедуру обработчика тем же способом, new оператор делает, если он завершается ошибкой для этой же причине.Переопределить значения по умолчанию, вызов
_set_new_mode(1)
в начале программу или ссылка со NEWMODE.OBJ (см. Параметры соединения).
При связывании с отладочной версией библиотеки времени выполнения c malloc позволяет к _malloc_dbg.Дополнительные сведения об управляемой куче во время процесса отладки см. в разделах Куча отладки для CRT.
malloc помечает __declspec(noalias) и __declspec(restrict), чтобы гарантированно изменяет функция глобальные переменные и присвоен псевдоним возвращенный указатель.Дополнительные сведения см. в разделе noalias и ограничьте.
Требования
Процедура |
Обязательный заголовок |
---|---|
malloc |
<stdlib.h> и <malloc.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Все версии Библиотеки времени выполнения C.
Пример
// crt_malloc.c
// This program allocates memory with
// malloc, then frees the memory with free.
#include <stdlib.h> // For _MAX_PATH definition
#include <stdio.h>
#include <malloc.h>
int main( void )
{
char *string;
// Allocate space for a path name
string = malloc( _MAX_PATH );
// In a C++ file, explicitly cast malloc's return. For example,
// string = (char *)malloc( _MAX_PATH );
if( string == NULL )
printf( "Insufficient memory available\n" );
else
{
printf( "Memory space allocated for path name\n" );
free( string );
printf( "Memory freed\n" );
}
}
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.