struct example *s = malloc (MAX);
That line points s to a memory capable of holding 64 example structures. Each example structure only has enough memory to hold a pointer (called name).
strcpy(s->name ,"Hello World!!");
Thats not valid, as s->name isn't pointing anywhere, it needs to point to allocated memory.
You probably want:
struct example *s = malloc(sizeof(struct example)); //Allocate one example structure
s->name = malloc(MAX); //allocate 64 bytes for name
strcpy(s->name,"Hello world!"); //This is ok now.
This is the same as:
struct example s; //Declare example structure
s.name = malloc(MAX); //allocate 64 bytes to name
strcpy(s.name,"Hello world!");