介绍

memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它。它的函原型如下:

void *memcpy(void *dest, const void *src, size_t n);

它的功能是从src的开始位置拷贝n个字节的数据到dest。如果dest存在数据,将会被覆盖。memcpy函数的返回值是dest的指针。memcpy函数定义在string.h头文件里。

例子

1.将一个字符串数据复制到一块内存。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10
int main(void)
{
char* target=(char*)malloc(sizeof(char)*N);
memcpy(target,"0123456789",sizeof(char)*N);
puts(target);
free(target);
return 0;
}

编译,运行,将输出:0123456789

2.将一个字符串数据复制到一块内存的指定位置。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10
int main(void)
{
char* target=(char*)malloc(sizeof(char));
for(int i=0;i<N;i++){
memcpy(target+i,"a",sizeof(char));
}
puts(target);
free(target);
return 0;
}

编译,运行,将输出:aaaaaaaaaa

3.数据覆盖

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10
int main(void)
{
char* target=(char*)malloc(sizeof(char)*N);
memcpy(target,"0123456789",sizeof(char)*N);
puts(target);
memcpy(target,"aaaaa",sizeof(char)*(N-5));
puts(target);
free(target);
return 0;
}

编译,运行,将输出:

0123456789
aaaaa56789

C语言memcpy函数的用法的更多相关文章

  1. GO语言延迟函数defer用法分析

    这篇文章主要介绍了GO语言延迟函数defer用法,较为详细的分析了GO语言的特性与具体用法,并给出了一个比较典型的应用实例,具有一定的参考借鉴价值,需要的朋友可以参考下   本文实例讲述了GO语言延迟 ...

  2. C语言memcpy()函数和memmove()函数

    C语言memcpy()函数和memmove()函数 关于 memcpy() 函数,请先看链接. memcpy() 函数和 memmove() 函数的函数原型如下: void* memcpy(void ...

  3. memcpy函数的用法以及实现一个memcpy函数

    memcpy的用法 在项目中经常用到memcpy来实现内存的拷贝工作,如下代码片段 memcpy( pData, m_pSaveData_C, iSize * sizeof( unsigned sho ...

  4. (C语言)memcpy函数原型的实现

    在网上看到一道题,实现一个memcpy函数,于是查了一下memcpy的函数原型,如下: void* memcpy(char *strDest, const char *strSrc, int Coun ...

  5. C/C++ memcpy函数的用法

    功能 memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 头文件 所在头文件 <s ...

  6. c语言strtod()函数的用法

    函数原型: #include <stdlib.h> double strtod(const char *nptr, char **endptr); C语言及C++中的重要函数. 名称含义 ...

  7. C语言 memset函数及其用法

    定义 void *memset(void *s, int c, unsigned long n); 描述 将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int ...

  8. R语言 plot()函数 基础用法

    plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称" ...

  9. C语言使用memcpy函数实现两个数间任意位置的复制操作

    c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. 用法:void *memcpy(void *dest ...

随机推荐

  1. 当今商业中使用的三种十分重要的IT应用系统

    本文为读书笔记,其中内容摘自<信息时代的管理信息系统>第八版第二章 当今商业中使用的三种十分重要的IT应用系统: 供应链管理(SCM) 客户关系管理(CRM) 电子协同(e-collabo ...

  2. Django Channels简明实践

    1.安装,如果你已经安装django1.9+,那就不要用官方文档的安装指令了,把-U去掉,直接用: sudo pip install channels 2.自定义的普通Channel的名称只能包含a- ...

  3. centos7虚拟机设置静态ip

    cd /etc/sysconfig/network-scripts/ vi ifcfg-enp0s3 1.修改配置 BOOTPROTO=static2.新增配置(查询宿主机对应的信息) IPADDR= ...

  4. 利用arcserver 自带tomcat实现上传shapefile、cad等文件,然后用soe解析。

    一.功能实现分析 1.soe中传入指定路径目录和文件名就能读取shp.cad并解析,然后返回JSON格式数据给flex端生成图形.(soe读取的是本地绝对路径) 2.所以首先要上传文件到soe发布所在 ...

  5. 佛祖镇楼,BUG避易

    def FZZL(): print(" _ooOoo_ ") print(" o8888888o ") print(" 88 . 88 ") ...

  6. Apache 、Tomcat、Nginx的区别

    一. 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上.其属于应用服务器.Apache支持支持模块多,性能稳定,Apache本身是 ...

  7. python_code list_1

    >>> def is_not_empty(s): return s and len(s.strip()) > 0 >>> filter(is_not_empt ...

  8. Linux kernel的中断子系统之(四):High level irq event handler

    返回目录:<ARM-Linux中断系统>. 总结:从架构相关的汇编处理跳转到Machine/控制器相关的handle_arch_irq,generic_handle_irq作为High l ...

  9. aliyun oss操作汇总

    // endpoint以杭州为例,其它region请按实际情况填写 String endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; ...

  10. tkinter中scale拖拉改变值控件(十一)

    scale拖拉改变值控件 使用户通过拖拽改变值 简单的实现: import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya. ...