memcpy不能连续拷贝数据

求助,memcpy为什么不能进行连续的数据拷贝呢?比如:将“you bad boy”写入数组a[100]后,想再将“you good boy”在后边继续写入,在memcpy将地址挪动strlen(“you bad boy”)距离但并不会复制。代码如下:
int _tmain(int argc, _TCHAR* argv[])
{
/*
HANDLE hMutex;
hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, _T("SRTM_MUTEX"));

if (hMutex == NULL)
{
    printf("Open Mutex failed");
}

WaitForSingleObject(hMutex, INFINITE);
Sleep(10000);
*/
void *pbufout=NULL;
char s[100]="you bad boy";
char b[1000]="";

memcpy(b,s,sizeof(s));
pbufout = b;
pbufout = (int*)pbufout + sizeof(s);

sprintf_s(s,"you good boy");
memcpy(b + sizeof(s), s, sizeof(s));
return 0;

}

sizeof(s) = 100;

memcpy(b + sizeof(s), s, sizeof(s));

请查看b[100] 里面的数据。。。。

try

 char *pbufout=NULL;
char s[100]="you bad boy";
char b[1000]="";

memcpy(b,s,strlen(s));
pbufout = b;
pbufout = pbufout + strlen(s);

sprintf_s(s,"you good boy");
memcpy(b + strlen(s), s, strlen(s));

可以偏移!这是我写的一个序列化,里面用的memcpy做的!你可以借鉴一下
RSDN_ERROR_CODE Serialize(char* buffer,U32& buffer_len,U64 group_id,U16 version,const char* info,U32 info_len)
{
int len = sizeof(U64) + sizeof(U16) + sizeof(U32) + info_len;
if(buffer_len < len)
return RSDN_BUFFER_SHORT;

        memset(buffer,0,buffer_len);
        memcpy(buffer,&group_id,sizeof(group_id));
        memcpy(buffer+sizeof(group_id),&version,sizeof(version));
        memcpy(buffer+sizeof(group_id)+sizeof(version),&info_len,sizeof(info_len));
        memcpy(buffer+sizeof(group_id)+sizeof(version)+sizeof(info_len),&info,info_len);
        return RSDN_SUC;
    }