-
memcpy
鎖定
- 中文名
- 內存拷貝函數
- 外文名
- memcpy
- 功 能
- 拷貝n個字節
- 返回值
- 指向dest的指針
- 所在頭文件
- 或
memcpymemcpy函數語法
memcpy函數原型
void *memcpy(void *destin, void *source, unsigned n);
memcpy參數
- destin-- 指向用於存儲複製內容的目標數組,類型強制轉換為 void* 指針。
- source-- 指向要複製的數據源,類型強制轉換為 void* 指針。
- n-- 要被複制的字節數。
memcpy返回值
該函數返回一個指向目標存儲區destin的指針。
memcpy功能
需要注意的是:
memcpy所需頭文件
C語言:#include<string.h>
C++:#include<cstring>
memcpy應用説明
1.source和destin所指的內存區域可能重疊,但是如果source和destin所指的內存區域重疊,那麼這個函數並不能夠確保source所在重疊區域在拷貝之前不被覆蓋。而使用memmove可以用來處理重疊區域。函數返回指向destin的指針。
2.如果目標數組destin本身已有數據,執行memcpy()後,將覆蓋原有數據(最多覆蓋n)。如果要追加數據,則每次執行memcpy後,要將目標數組地址增加到要追加數據的地址。
memcpy區別
strcpy和memcpy主要有以下3方面的區別。
2、複製的方法不同。strcpy不需要指定長度,它遇到被複制字符的串結束符"\0"才結束,所以容易溢出。memcpy則是根據其第3個參數決定複製的長度。
3、用途不同。通常在複製字符串時用strcpy,而需要複製其他類型數據時則一般用memcpy。
[3]
[2]
由於字符串是以“\0”結尾的,所以對於在數據中包含“\0”的數據只能用memcpy。
[4]
- 參考資料
-
- 1. 尹德淳 . C函數速查手冊:人民郵電出版社,2009.4
- 2. 陳超 .C語言常用函數速查手冊:化學工業出版社,2010.6
- 3. 張權 .Objective-C函數速查實例手冊:人民郵電出版社 ,2014.2
- 4. strcpy和memcpy .CSDN[引用日期2023-08-30]
- 5. C函數之memcpy()函數用法-阿里雲開發者社區 .阿里雲開發者社區[引用日期2023-08-30]