69,336
社区成员
发帖
与我相关
我的任务
分享
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *p = NULL;
p = (char *)malloc(10);
memcpy(p,"1234567",strlen("1234567"));
printf("before p = %s\n", p);
printf("p=%p\np+1=%p\n",p,p+1);
strcpy(p+1,p);//这重叠了
printf("after p = %s\n", p);
free(p);
return 0;
}
/****** result *****/
/*
before p=123456789
p=00490FD8
p+1=00490FD9
after p=11234479
*/
char p[10];
memcpy(p,"1234567",strlen("1234567"));
//strcpy(p,"123456789");
printf("before p = %s\n", p);
printf("p=%p\np+1=%c\n",p,*(p+1));
char *pp=p+1;
strcpy(pp,p);
printf("after p = %s\n%s", p,pp);
free(p);
return 0;