今天不小心在该用memcpy的时候,用了strncpy使自己吃了亏,所以写出这个博文。

memcpy就是纯字节拷贝,而strncpy就不同了,字符串是以'\0'结尾的。如果一个字符buffer长度为6个字节,内容是

{'a', 'b', '\0', 'c', 'm', 'n'},当你执行这一句:strncpy(dest, buffer, 4);

dest里的前四个字节内容将为{'a', 'b', '\0', '\0'},注意第四个字符'c'变成了'\0',奇怪么,这就是strncpy的行为。

所以如果buffer之间拷贝的话,还是用memcpy为妙。

相关文章:

  • 2022-01-04
  • 2021-07-11
  • 2021-06-05
  • 2021-05-03
  • 2021-08-14
猜你喜欢
  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
  • 2022-01-03
  • 2022-01-14
  • 2021-10-31
相关资源
相似解决方案