char* pointer
merely gives you a variable to use to access the memory location. You've not yet allocated any memory, so when you do the strcpy
you're writing to whatever random/undefined value pointer
has.
You need to do something like:
char* pointer = calloc(LEN);
if (pointer)
{
strcpy(pointer, "Hello World");
printf(pointer);
free(pointer);
}