Suppose I have 

```
void * space= malloc(500) //alloc a block of memory

```

and I need to write two strings and an int: "Hello world", "Goodbye friend",5 in memory address 50,150,380, correspondance to space.I tried the approach:

```
int * insert = (int *)(space +380);
*insert = 5;

char * insert2 = (char *)(space+50);
*insert2 = "Hello world";

char * insert3 = (char *)(space + 150);
strcpy(insert3,"Goodbye friend");

```

the int has no problem, but the two string throws error messages. so what's the correct method to do this? Also, how can you check if there is an overlap in memory between those inputs (the string inputed can be arbitarily long?