我定义的三个数组 unsigned char sn2[8],ye[9],th[2]memcpy(sn2,(char*)"88888888",8);//sn2 内容为 8888888
memcpy(ye,(char*)"123456.89",9);//ye 内容为 123456.89 烫88888888
memcpy(th,(char*)"01",2);//th 内容为 0 1烫 123456.89 烫88888888请各位大哥解释一下这是怎么回事
memcpy(ye,(char*)"123456.89",9);//ye 内容为 123456.89 烫88888888
memcpy(th,(char*)"01",2);//th 内容为 0 1烫 123456.89 烫88888888请各位大哥解释一下这是怎么回事
这样定义就没问题了!
因为存放这符串的时候,要比它的长度多一个字节用于存放结束符'\0'
最好不用memcpy
如果坚持要用的话,先要对数组清0就ok了
memset(sn2,0,9);
memset(ye,0,10);
memset(th,0,3);
unsigned char sn2[9],ye[10],th[3]; memcpy(sn2,(char*)"88888888",8);//sn2 内容为 8888888
sn2[8] = '\0';
memcpy(ye,(char*)"123456.89",9);//ye 内容为 123456.89 烫88888888
ye[9] = '\0';
memcpy(th,(char*)"01",2);//th 内容为 0 1烫 123456.89 烫88888888
th[2] = '\0';