Прототип функции 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