C中memcpy函数用法
1、函数原型
void *memcpy(void *destin,void *source,unsigned n);
其中,
- destin代表用于存储复制内容的目标数组,类型强制转换为void*指针。
- source表示指向要复制的数据源,类型`强制转换为void*指针。
- n表示要被复制的字节数
该函数返回一个指向目标存储区destin的指针。如果destin存在数据,将会被覆盖。该函数存在与头文件string.h中。
2、实现的功能
从source所指的内存地址的起始位置开始拷贝n个字节到目标destin所指的内存地址的起始位置中。
3、memcpy与strcpy区别:
- strcpy只能复制字符串,而memcpy可以复制任意内容,如:字符数组、整形、结构体、类等
- strcpy不需要指定长度,它遇到被复制字符的串结束符“\0”才结束,所以容易溢出。memcpy则根据第三个参数决定复制的长度。
- 通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy。
4、程序案例:
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 9 int main() { char* a=(char*)malloc(sizeof(char)*N); char* b="Who are you?"; memcpy(a,b,N); printf("%s\n",a); return 0; }
运行结果:
Who are y
专业的物联网解决方案提供商,提供基于wifi和蓝牙的从app 到模组芯片的一体化解决方案,长期承接乐鑫,BES,stm32等芯片的方案设计开发及服务。 商务合作和技术探讨:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |