Respected Sir, I am using gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) I have one doubt regarding malloc () in gcc. When I tried to execute the program given below, it got executed. But since 256 = 1 0000 0000 (9 bits) , How malloc can store it at 'p' since I have allocate only 1 byte of memory (8 bits of memory) ? Please guide me. Program: # include <stdio.h> # include <stdlib.h> int main(void) { int *p; p=(int *) malloc(1); *p=256; printf("%d \t %ld \n",*p,p); free(p); return 0; } Terminal: avinash@titanic:/Remastersys/Documents/Programs/c$ gcc malloc.c -o malloc malloc.c: In function ‘main’: malloc.c:12:3: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘int *’ avinash@titanic:/Remastersys/Documents/Programs/c$ ./malloc 256 8044560 -- Avinash Sonawane PICT Pune India