Функцията malloc () в C ++ разпределя блок от неинициализирана памет и връща празен указател към първия байт на разпределения блок памет, ако разпределението е успешно.
Функцията malloc () в C ++ разпределя блок от неинициализирана памет и връща празен указател към първия байт на разпределения блок памет, ако разпределението е успешно.
Ако размерът е нула, върнатата стойност зависи от изпълнението на библиотеката. Може да е или да не е нулев указател.
прототип на malloc ()
void * malloc (size_t size);
Тази функция е дефинирана в заглавния файл.
malloc () Параметри
- size: Неподписана интегрална стойност, която представлява блока памет в байтове.
malloc () Върната стойност
Функцията malloc () връща:
- указател към неинициализирания блок памет, разпределен от функцията.
- нулев указател, ако разпределението е неуспешно.
Пример 1: Как работи функцията malloc ()?
#include #include using namespace std; int main() ( int *ptr; ptr = (int*) malloc(5*sizeof(int)); if(!ptr) ( cout << "Memory Allocation Failed"; exit(1); ) cout << "Initializing values… " << endl << endl; for (int i=0; i<5; i++) ( ptr(i) = i*2+1; ) cout << "Initialized values" << endl; for (int i=0; i<5; i++) ( /* ptr(i) and *(ptr+i) can be used interchangeably */ cout << *(ptr+i) << endl; ) free(ptr); return 0; )
Когато стартирате програмата, изходът ще бъде:
Инициализиращи стойности … Инициализирани стойности 1 3 5 7 9
Пример 2: функция malloc () с размер нула
#include #include using namespace std; int main() ( int *ptr = (int*) malloc(0); if(ptr==NULL) ( cout << "Null pointer"; ) else ( cout << "Address = " << ptr << endl; ) free(ptr); return 0; )
Когато стартирате програмата, изходът ще бъде:
Адрес = 0x371530