Malloc () Функция в C библиотека с ПРИМЕР

Съдържание:

Anonim

Какво е malloc в C?

Функцията malloc () означава разпределение на паметта. Това е функция, която се използва за динамично разпределение на блок памет. Той запазва място в паметта с определен размер и връща нулевия указател, сочещ към мястото на паметта. Върнатият указател обикновено е от тип void. Това означава, че можем да присвоим функция malloc на всеки указател.

Синтаксис

ptr = (cast_type *) malloc (byte_size);

Тук,

  • ptr е указател на cast_type.
  • Функцията malloc връща указател към разпределената памет на byte_size.
Example: ptr = (int *) malloc (50)

Когато този оператор се изпълни успешно, се запазва място в паметта от 50 байта. Адресът на първия байт запазено пространство се присвоява на указателя ptr от тип int.

Помислете за друг пример за изпълнение на malloc:

#include int main(){int *ptr;ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */if (ptr != NULL) {*(ptr + 5) = 480; /* assign 480 to sixth integer */printf("Value of the 6th integer is %d",*(ptr + 5));}}

Изход:

Value of the 6th integer is 480

  1. Забележете, че sizeof (* ptr) беше използван вместо sizeof (int), за да направи кода по-стабилен, когато декларацията * ptr бъде въведена по-късно в друг тип данни.
  2. Разпределението може да се провали, ако паметта не е достатъчна. В този случай той връща NULL указател. Така че, трябва да включите код, за да проверите за NULL указател.
  3. Имайте предвид, че разпределената памет е непрекъсната и може да се третира като масив. Можем да използваме аритметика на показалеца за достъп до елементите на масива, вместо да използваме скоби []. Съветваме да използвате + за препращане към елементи на масив, тъй като използването на инкрементиране ++ или + = променя адреса, съхранен от указателя.

Функцията Malloc може също да се използва с типа данни за символи, както и със сложни типове данни като структури.