C 和 C++語言中的內存拷貝函數memcpy()


memcpy指的是C和C++使用的內存拷貝函數

函數原型為void *memcpy(void *destin, void *source, unsigned n);

函數的功能是從源內存地址的起始位置開始拷貝若干個字節到目標內存地址中,即從源source中拷貝n個字節到目標destin中。

memcpy函數語法

函數原型
  void *memcpy(void *destin, void *source, unsigned n);
參數
  destin-- 指向用於存儲復制內容的目標數組,類型強制轉換為 void* 指針。
  source-- 指向要復制的數據源,類型強制轉換為 void* 指針。
  n-- 要被復制的字節數。
返回值
  該函數返回一個指向目標存儲區destin的指針。
功能
  從源source所指的內存地址的起始位置開始拷貝n個字節到目標destin所指的內存地址的起始位置中。 [2]
所需頭文件
  C語言:#include<string.h>
  C++:#include<cstring>

strcpy和memcpy主要有以下3方面的區別。

1、復制的內容不同。strcpy只能復制字符串,而memcpy可以復制任意內容,例如字符數組、整型、結構體、類等。
2、復制的方法不同。strcpy不需要指定長度,它遇到被復制字符的串結束符"\0"才結束,所以容易溢出。memcpy則是根據其第3個參數決定復制的長度。
3、用途不同。通常在復制字符串時用strcpy,而需要復制其他類型數據時則一般用memcpy。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM