strcpy和Memcpy。

最近,代码除了一个问题,就是调用strcpy的时候,程序飞掉了。经过跟踪,发现了一个问题,就是strcpy在这里不能使用。应该使用memcpy才可以,那么,strcpy和memcpy 的一个最主要区别是什么呢?

看一下下面的例子,估计大家就明白了。

char temp[10] = {0};

char *tempOrg = "1234567890";

strcpy(temp, tempOrg); //会是一个未定义的现象哟,应为已经越界了!!!

memcpy(temp, tempOrg, strlen(tempOrg));//这样就刚好拷贝完成。

这里提醒大家,不要认为所有的字符串都用strcpy就可以了,大家都知道,所有的字符串是以字符0为结束符的,因此使用strcpy不会有人和问题,但是,要考虑到,有的厂商提供给你的东西并没有考虑这些因素。

例如Asn语言转换为C++结构的诸多工具中,都没有进行这样的考虑,因此,此时,如果你使用strcpy,祸害无穷呀,因此,什么时间使用strcpy,什么时间考虑memcpy,要注意呀。

你可能感兴趣的:(RCP)