как я могу увидеть, сколько места у меня в куче и как я могу очистить его? - PullRequest
0 голосов
/ 29 апреля 2020

как я могу узнать, сколько места у меня в HEAP? как я могу очистить его, если у меня есть много кодов со связанным списком, которые я уже запустил и не использовал функцию free ()?

например, этот код, который я уже выполнил и не использовал free () функция. как я могу очистить то, что сделала эта функция и как я могу проверить, сколько места у меня сейчас в HEAP?

void main() {

int i, num,item;
LNODE* newNode;
LIST lst;
lst = makeEmptyList();
printf("Please enter the numbers of the nodes: ");
scanf("%d", &num);
printf("Please enter the value of the head: ");
scanf("%d", &item);
insertValueToHead(item, &lst);

for (i = 0; i < num-1; i++)
{
    printf("Please enter the value of the next node: ");
    scanf("%d", &item);
    newNode = createNewNode(item, lst.tail);
    AddToEndOfTheList(&lst, newNode);
}
printf("\n");
printList(&lst);

1 Ответ

1 голос
/ 29 апреля 2020

Как я могу проверить, сколько места у меня сейчас в HEAP?

Не беспокойтесь об этом.

Просто спросите, что вам нужно и проверьте возвращаемое значение.

ptr = calloc(N, sizeof *ptr);
if (!ptr) exit(EXIT_FAILURE);
//... use ptr ...
free(ptr);
...