1/5 Query?
int *i=//heap var allocated
int*trackI=i;
free(i);
now track==NULL?
---
int *i=//heap var allocated
int*trackI=i;
free(trackI);
now i==NULL?
ChatGPT said:
================================
2/5 Query?
int *i=//heap var allocated
int*trackI=i;
free(i);
i=NULL
now track==NULL?
---
int *i=//heap var allocated
int*trackI=i;
free(trackI);
trackI=NULL:
now i==NULL?
ChatGPT said:
=====================================
3/5 Query?
int *i=//heap var allocated
void*trackI=i;
free(i);
i=NULL
now if I using some difft fn where I will add trackI, how will I check if heap already cleared?
---
int *i=//heap var allocated
void*trackI=i;
free(trackI);
trackI=NULL:
So heap for *i already cleared. But since i not yet set trackI to NULL, how will I check before freeing i?
ChatGPT said:
=================================
4/5 Query?
void fn(){
int *i=//heap var allocated
void*trackI=i;
free(i);
i=NULL
}
now if I never set trackI=NULL (i know it won't be used any further) I think it wont cause any memory lekage issue once control moves out of scope of fn
---
void fn(){
int *i=//heap var allocated
void*trackI=i;
free(trackI);
trackI=NULL:
}
So heap for *i already cleared. But if never set i=NULL I dont think it will be any issue once control moves out of scope of fn
ChatGPT said:
=============================
5/5. Query?
void fn(){
int *i=//heap var allocated
void**trackI=&i;
free(i);
i=NULL
}
now *trackI==NULL?
---
void fn(){
int *i=//heap var allocated
void**trackI=&i;
free(*trackI);
*trackI=NULL:
}
now i==NULL?
-------------------------------------
ChatGPT said: