當前位置:編程學習大全網 - 腳本源碼 - strcpy函數和memcpy函數有什麽區別?它們各自使用時應該註意什麽問題?

strcpy函數和memcpy函數有什麽區別?它們各自使用時應該註意什麽問題?

strcpy和memcpy都是用於從壹塊內存復制壹段連續的數據到另壹塊內存,區別是終結標識不同。

strcpy(a,

b)從b復制內容到a,然後從b+1復制內容到a+1,依次類推,知道b+i的內容是'\0'。要小心的是1:確保b是以'\0'結尾的字符串;2:確保a開始有足夠的可用內存。通常用strncpy(a,

b,

c)會好壹些,這時復制的數據最長不超過c字節。

memcpy(a,

b,

c)從b開始復制c字節內容到a。相比strcpy,memcpy是確定復制c個字節的。所以只要保證b開始有c字節有效數據,a開始有c字節內存空間就行。

要小心的是:memcpy對於重疊內存的復制支持不太好。重疊內存是指

char

a[10]的話,memcpy(a,

a

+

3,

5)這樣的,源數據是a+3到a+7,目標位置是a到a+5,有重復。

如果希望覆蓋,可以用memmove。

  • 上一篇:陳廷敬與張廷玉關系
  • 下一篇:usdt屬於什麽幣種
  • copyright 2024編程學習大全網