Прототип функции malloc:
void * malloc( size_t sizemem );
Название | Язык |
---|---|
stdlib.h | С |
cstdlib | С++ |
Описание
Функция malloc
выделяет блок памяти, размером sizemem
байт, и возвращает указатель на начало блока.
Содержание выделенного блока памяти не инициализируется, оно остается с неопределенными значениями.
Параметры:
- sizemem
Размер выделяемого блока памяти в байтах.
Возвращаемое значение
Указатель на выделенный блок памяти. Тип данных на который ссылается указатель всегда void*
, поэтому это тип данных может быть приведен к желаемому типу данных.
Если функции не удалось выделить требуемый блок памяти, возвращается нулевой указатель.
Пример: исходный код программы
//пример использования функции malloc #include <iostream> #include <cstdlib> int main() { int len; std::cout << "Укажите длину строки в символах: "; std::cin >> len; char * buffer = (char*) malloc(len + 1); // динамическое выделение памяти под символьную строку if (buffer==NULL) exit (1); // если выделение памяти не выполнилось, завершить программу for (int ix = 0; ix < len; ix++) buffer[ix] = rand() % 26 + 'a'; buffer[len]='\0'; // нулевой элемент std::cout << "Случайная строка: " << buffer << "n"; free(buffer); // освобождаем память return 0; }
Пример работы программы
Эта программа создает строку длиной указанный пользователем и заполняет её символами алфавита. Возможная длина этой строки ограничена только количеством свободной памяти в системе, которую malloc
может выделить.
CppStudio.com
Укажите длину строки в символах: 17
Случайная строка: nwlrbbmqbhcdarzow
Случайная строка: nwlrbbmqbhcdarzow