如:
char m[5]={"1234"};
char n[5]={};
char q[5]={'1','2','3','4','5'};
char x,y,z;
memcpy(m+1,s+12,4);
x=strlen(m);
memcpy(n,a+2,4);
y=strlen(n);
memcpy(q+1,b+12,4);
z=strlen(q);
printf("%s\n%s\n%s\n",m,n,q);
printf("%d\n%d\n%d\n",x,y,z);
用cfree输出:
1View
3456
1View
5
4
5
请按任意键继续. . .
数组m和q长度为5,那通过memcpy复制了之后字符已经占用了5个,那\0去了哪?按道理打印出来5个字符后面还会接一些不可知的东西才对啊?
有输出啊,输出我都贴出来了,不好意思,s a b忘了贴出来,是
char *s="GoldenGlobalView";
char b[17]="GoldenGlobalView"; //16个字符 + '\0' 共17个字符
char a[7]={'1','0','3','4','5','6','7'}; //strlen(a)=7,sizeof(a)=7