/* * Display Hello World 3 times. */ #include #include #include #include #include char *cptr= "Hello world!\n"; /* Static by placement */ char buffer1[25]; #define SHW_ADR(ID,I) printf("The is %s \t is at adr: %8X\n", ID, &I) extern int etext, edata, end; void main(void) { void showit(char *); int i=0; printf(" \t etext: %8X \t edata: %8X \t end: %8X \n", &etext, &edata, &end); strcpy(buffer1, "A demonstration\n"); write(1, buffer1, strlen(buffer1)+1); for (;i < 3; ++i) showit(cptr); } void showit(char *p) { char *buffer2; printf("\nValue of sbrk: %8X\n", sbrk(0)); if ((buffer2=(char *) malloc((unsigned) (strlen(p)+1)))!=NULL) { strcpy(buffer2, p); printf("Entered the showit..."); printf("Value of buffer2: %s", buffer2); SHW_ADR("buffer2", buffer2); free(buffer2); } else { printf("Allocation Eroor"); exit (1); } printf(" \t etext: %8X \t edata: %8X \t end: %8X \n", &etext, &edata, &end); }