C/C++中的memcpy

本文详细介绍了C/C++中的memcpy函数,包括所需头文件、函数原型、使用注意事项及示例代码。memcpy用于二进制复制,不检查终止符,适用于不同类型间的复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个函数的用法还是比较简单的,只是经常忘记,所以就记下来吧。

1. 所需头文件

    <string.h>


2. 函数原型

  1. void * memcpy ( void * destination, const void * source, size_t num );  

(1) 复制指向source位置的num个字节的值直接到指向destination的内存区域中。

(2) source和destination指向的数据类型不用相关,这是二进制复制。

(3) source指向的区域和destination指向的区域不要重叠。

(4) 函数返回destination。

下面是摘自的C/C++ Reference的解释:

Copies the values of num bytes from the location pointed by source directly to the memory block pointed bydestination.
The underlying type of the objects pointed by both the source and destination pointers are irrelevant for this function; The result is a binary copy of the data.
The function does not check for any terminating null character in source - it always copies exactly num bytes.
To avoid overflows, the size of the arrays pointed by both the destination and source parameters, shall be at leastnum bytes, and should not overlap (for overlapping memory blocks, memmove is a safer approach).

3. 例子

  1. /* memcpy example */  
  2. #include <stdio.h>  
  3. #include <string.h>  
  4.   
  5. int main (void)  
  6. {  
  7.   char str1[]="Sample string";  
  8.   char str2[40];  
  9.   char str3[40];  
  10.   memcpy (str2,str1,strlen(str1)+1);  
  11.   memcpy (str3,"copy successful",16);  
  12.   printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);  
  13.   return 0;  
  14. }  

输出:


str1: Sample string
str2: Sample string
str3: copy successful

这个函数可以将Int等类型的数据存放在char数组中。
int nData=4;
char chBuf[4];
ZeroMemory(chBuf,4);
memcpy(chBuf,&nData,sizeof(int));
 
转自http://blog.youkuaiyun.com/songuooo/article/details/7819891
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值