1. strcpy拷贝
strcpy主要用来拷贝字符串,直到遇到\0结束为止。
char s1[32] = "helloworld";
char s2[32] = "apple";
strcpy(s1, s2);
必须保证s1中有足够大的内存,因为\0也会被拷贝过去,打印s1是apple而不是appleworld。
- strcpy不会预先判断是否有足够大内存,所以是不安全的。
- strcpy不可以拷贝整数,\0在内存中也是0.
- 两块内存区域不可以重叠
2. memcpy内存拷贝
int s1[5] = {1,2,4,5,10};
int s2[5] = {1,2,4,5,10};
memcpy((void*)s1, (void*)s2, sizeof(int) * 5);
和strcpy要求一样,不可以有内存重叠;目标内存需要足够大,而且需要手动指定长度大小。