Wild Pointers
Key points on wild pointers:
- If any of the pointer is uninitialized, then that pointer is called wild pointer.
- Wild pointers won't refer to any valid memory location.
- Dereferencing wild pointer would cause segmentation fault.
Consider the following,
int func() {
int *iptr;
char *cptr;
}
Here, iptr and cptr are wild pointers. Because, they are not initialized to NULL.
int func() {
static int *int_ptr;
char *char_ptr;
}
Here, int_ptr and char_ptr are not wild pointers. Because, they are static variables. By default, static variables are initialized to 0.
Below is the example C program on wild pointer.
#include <stdio.h>
int main() {
int *ptr; // wild pointer
if (ptr) {
printf("ptr is not NULL\n");
*ptr = 10;
printf("*ptr: %d\n", *ptr);
}
return 0;
}
Output: (Wild pointer example)
jp@jp-VirtualBox:~/$ ./a.out
ptr is not NULL
Segmentation fault
ptr is not NULL
Segmentation fault
Wild Pointers
Reviewed by Mursal Zheker
on
Minggu, Desember 22, 2013
Rating:
Tidak ada komentar: