Stack և Heap
malloc(), free() ֆունկցիաները։ Ծրագրի հիշողության սեգմենտները
Stack-ը հիշողության տարածք է՝ ֆունկցիայի կանչի մասին
տեղեկատվությունը և local փոփոխականները պահելու համար:
Դա ստրուկտուրային, Last In, First Out(LIFO)
տվյալների կառուցվածք է:
Օգտագործվում է ֆունկցիաների կանչերի կառավարման և local
փոփոխականների պահելու համար, ֆիքսված չափերով:
Heap հիշողության տարածք է դինամիկ հիշողության տեղաբաշխման
համար:
Դա ավելի քիչ ստրուկտուրային, ավելի ճկուն տվյալների
կառուցվածք է:
Օգտագործվում է դինամիկ չափերով տվյալներ պահելու համար, որոնք
գործում են ֆունկցիայի scope-ից դուրս:
malloc()-ը C գրադարանային ֆունկցիա է heap-ում հիշողություն
հատկացնելու համար:
Որպես արգումենտ հիշողության չափը և վերադարձնում է ցուցիչ
հատկացված հիշողության վրա:
Օրինակ՝
int *ptr = (int *)malloc(10 *
sizeof(int));
free() ֆունկցիան վերցնում է մեկ արգումենտ, ցուցիչ որը հղվում
է դինամիկորեն հատկացված հիշողության սկիզբը:Կարևոր է նշել, որ
երբ դուք կանչեք free(), pointer-ը այլևս
վավեր չէ և այն օգտագործելը հանգեցնում է undefined
behavior-ի: