Динамични масиви в C
- използване наmalloc,calloc,realloc иfree; функции
- чрез оператораnew иdelete.
Функциятаmalloc разпределя непрекъснат блок от клетки с памет за съхраняване на посочения обект и връща указател към първата клетка в този блок. Извикването на функцията изглежда така:
void *malloc(размер);
Тукразмер е цяло число без знак, което указва размера на разпределената област на паметта в байтове. Ако запазването на паметта е било успешно, тогава функцията връща променлива от типvoid *, която може да бъде преобразувана във всеки необходим тип указател.
Функцията -calloc също е предназначена да разпределя памет. Записът по-долу означава, че ще бъдат разпределениnum елементи отsize байта.
void *calloc(nime, size);
Тази функция връща указател към разпределената област илиNULL, ако паметта не може да бъде разпределена. Характеристика на функцията е нулирането на всички избрани елементи.
Функциятаrealloc променя размера на предварително разпределената памет. Те се обръщат към нея така:
char *realloc (void *p, size);
Функциятаfree се използва за освобождаване на разпределената памет. Те се обръщат към нея така:
без празнота (размер на празна *p);
Тукp е указател към част от паметта, предварително разпределена от функциитеmalloc,calloc илиrealloc.
int *mas=new int[10];
Разпределена е толкова памет, колкото е необходимо за съхраняване на 10 int стойности.
Когато динамичният масив (във всеки момент от работата на програмата) вече не е необходим, паметта може да се освободи с помощта на функциятаfree или оператораdelete.
Предлагам да разгледаме няколко задачи, които коригираттози урок:
Намерете сумата от реални елементи на динамичен масив.