/*
 * Display Hello World 3 times.
 */


#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>

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);

}
	
