heap use after free
The program uses memory after it has been freed, which can lead to unpredictable behavior.
free on itint main() {
int *ptr = malloc(sizeof(int));
*ptr = 10;
free(ptr);
printf("%d\n", *ptr); // Use after free
return 0;
}Set pointers to NULL after freeing them and check before using.
int main() {
int *ptr = malloc(sizeof(int));
if (ptr != NULL) {
*ptr = 10;
free(ptr);
ptr = NULL; // Set to NULL after freeing
}
// Check before using
if (ptr != NULL) {
printf("%d\n", *ptr);
} else {
printf("Pointer is NULL\n");
}
return 0;
}NULL after freeing themNULL before dereferencing it