天天看点

memcpy 与 strncpy的区别

void   *memcpy(void   *dest,   void   *src,   unsigned   int   count);

1 由src所指内存区域复制count个字节到dest所指内存区域

2 src和dest所指内存区域不能重叠,函数返回指向dest的指针。

char   *strncpy(char   *dest,   char   *src,   int   n); 

1 把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。

2 如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。   

3 如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。   

4 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。   

    返回指向dest的指针。

所以对于在数据中包含零的数据只能用memcpy