/* memcpyを使うと結果がわからなくなる例 */こういう場合はmemcpyではなく、memmoveを使用するとうまくいきます。
char buff[30]="abcdefghijklmnopqrstuvwxyz";
char *p = &buff[1];printf("buff = %s , p = %s\n",buff,p);
memcpy( p , buff , 15 );
printf("buff = %s , p = %s\n",buff,p);
/* memmoveを使うとうまくいく。 */memmove は処理速度を犠牲にしてmemcpyを使った場合に起こる不具合を回避してい ます。
char buff[30]="abcdefghijklmnopqrstuvwxyz";
char *p = &buff[1];printf("buff = %s , p = %s\n",buff,p);
memmove( p , buff , 15 );
printf("buff = %s , p = %s\n",buff,p);