strcpy和memcpy的區(qū)別
strcpy和memcpy的區(qū)別
strcpy n. 拷貝字符串短語define STRCPY 宏定義STRCPY strcpy 字符串拷貝strcpy wcscpy 拷貝字符串例句:You also haveto use the memalign function and strcpy to copy the data into anarea of appropriate alignment. 另外,還需要使用 memalign 函數(shù)和 strcpy 將數(shù)據(jù)**到合適對齊的區(qū)域。memcpy內存塊拷貝短語memcpy memcpy **內存區(qū)域例句:Generally百科, the memcpy function will be a checkpoint for this. 一般情況下,memcpy 函數(shù)將是用于此目的的檢查點。
C語言串拷貝(strcpy)和內存拷貝(memcpy)函數(shù)有什么不同?
strcpy()函數(shù)只能拷貝字符串。strcpy()函數(shù)將源字符串的每個字節(jié)拷貝到目錄字符串中,當遇到字符串末尾的null字符(\\0)時,它會刪去該字符,并結束拷貝。
memcpy()函數(shù)可以拷貝任意類型的數(shù)據(jù)。
因為并不是所有的數(shù)據(jù)都以null字符結束,所以你要為memcpy()函數(shù)指定要拷貝的字節(jié)數(shù)。在拷貝字符串時,通常都使用strcpy()函數(shù);在拷貝其它數(shù)據(jù)(例如結構)時,通常都使用memcpy()函數(shù)。
strcpy函數(shù)和memcpy函數(shù)有什么區(qū)別?它們各自使用時應該注意什么問題?
strcpy和memcpy都是用于從一塊內存**一段連續(xù)的數(shù)據(jù)到另一塊內存,區(qū)別是終結標識不同。strcpy(a, b)從b**內容到a,然后從b+1**內容到a+1,依次類推,知道b+i的內容是\’\\0\’。
要小心的是1:確保b是以\’\\0\’結尾的字符串;2:確保a開始有足夠的可用內存。
通常用strncpy(a, b, c)會好一些,這時**的數(shù)據(jù)最長不超過c字節(jié)。memcpy(a, b, c)從b開始**c字節(jié)內容到a。相比strcpy,memcpy是確定**c個字節(jié)的。所以只要保證b開始有c字節(jié)有效數(shù)據(jù),a開始有c字節(jié)內存空間就行。
要小心的是:memcpy對于重疊內存的**支持不太好。重疊內存是指char a[10]的話,memcpy(a, a + 3, 5)這樣的,源數(shù)據(jù)是a+3到a+7,目標位置是a到a+5,有重復。如果希望覆蓋,可以用memmove。
memcpy和strcpy的區(qū)別
用法:#include功能:由src所指內存區(qū)域**count個字節(jié)到dest所指內存區(qū)域。說明:src和dest所指內存區(qū)域不能重疊,函數(shù)返回指向dest的指針。