- *head = new_start + (*head - *start);
- *tail = new_start + (*tail - *start);
- *end = new_start + (*end - *start)*2;
+ *head = (char *)new_start + ((char *)*head - (char *)*start);
+ *tail = (char *)new_start + ((char *)*tail - (char *)*start);
+ *end = (char *)new_start + ((char *)*end - (char *)*start)*2;