Why char * + cast?