Why is it important to assign NULL to all pointer variables?
Table of Contents
Why is it important to assign NULL to all pointer variables?
It is always a good practice to assign the pointer NULL to a pointer variable in case you do not have exact address to be assigned. On most of the operating systems, programs are not permitted to access memory at address 0 because that memory is reserved by the operating system.
When you free a pointer does it become NULL?
free() is a library function, which varies as one changes the platform, so you should not expect that after passing pointer to this function and after freeing memory, this pointer will be set to NULL.
What happens to pointer after free?
As soon as a pointer is passed to free() , the object it pointed to reaches the end of its lifetime. Any attempt to refer to the pointed-to object has undefined behavior (i.e., you’re no longer allowed to dereference the pointer).
Can we assign null value to pointer?
Note: It is still acceptable to assign the value 0 or NULL to a pointer. The nullptr keyword designates a constant rvalue of type decltype(nullptr) .
Can you reassign a pointer after freeing?
You aren’t reassigning the pointer after freeing it, you’re just reusing the ptr variable. This is perfectly fine. You might want to rephrase this – the code is reassigning the pointer (but that’s indeed not a problem).
How do I know if a pointer is pointing to NULL?
Since NULL is zero, an if statement to check whether a pointer is NULL is checking whether that pointer is zero. Hence if (ptr) evaluates to 1 when the pointer is not NULL, and conversely, if (! ptr) evaluates to 1 when the pointer is NULL.
What happens if you use an uninitialized pointer?
If the pointer contains an uninitialized value, then the value might not point to a valid memory location. This could cause the program to read from or write to unexpected memory locations, leading to a denial of service.