#include <stdio.h>
#include <stdlib.h>
typedef struct node{
struct node *pre;
struct node *next;
int data;
}NODE; //struct declaration
int main(){
NODE *new_node=(NODE*)malloc(sizeof(NODE)); //memory allocation
printf("\nnew_node addr: %d\n",new_node);
free(new_node); //deallocation
printf("new_node addr: %d\n",new_node);
}
Результат:Почему malloc не освобождается?
new_node addr: 2097152
new_node addr: 2097152
Program ended with exit code: 0
Почему результаты такие же?
Я освобождаю память new_node. Но new_node имеет адрес.
Почему?
По той же причине 'int a = 5; printf ("a =% d \ n", a); бесплатно (new_node); printf ("a =% d \ n", a); 'будет печатать' a = 5' дважды. – mah
Wow Thanks !!!!!! – Kate
Видимо, вы думаете, что я на самом деле не отвечаю вам, но я. Как и в моем глупом коде, нет причин для изменения значения 'a', нет смысла изменять значение' new_node'. – mah