20 July 2010

Some notes on pointers in C

Note the following simple program and Its output on GCC 3.2.3:


int main(void)
int *p;
printf("%p %i\n",p, *p);

int *p2 = malloc(sizeof(*p2));
printf("%p %i\n",p2, *p2);

int *p3 = NULL;
printf("%p \n",p3);

p3 = malloc(sizeof(*p3));
printf("%p %i\n",p3, *p3);
return 0;

The output is:

0x8048414 1474660693
0x8d3d008 0
0x8d3d018 0

So, when you declare a pointer, it points to some garbage data.
When you malloc memory, the pointer points to some memory-allocated location.
When you assign NULL to a pointer, it becomes NULL Pointer and its address is NULL, and you need to reallocate memory for before use.

Post a Comment