c语言memcpy_memcpy、strcpy和strncpy深入理解及源码学习

因为自己主要用到的是C语言,所以这里只学习C语言的,C++应该是一样的。

常见用法和区别

头文件

#include

声明

46519926cb460d9d07363484cd3fc7da.png

两者区别

strcpy只能拷贝字符串。strcpy遇到 '0'拷贝结束(当dest的内存长度大于src的长度,拷贝时将'0’带过去,'0’后面的内容不再拷贝);如果当dest的内存长度小于src的长度,那么会造成内存溢出等问题,所以有了strncpy函数,就是增加了长度控制。

memcpy从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中,可以拷贝任意数据。除了拷贝字符串外,还能拷贝其他的类型的数据,比如结构体,整型数据,类等。memcpy拷贝时需要带有长度参数。

Linux man手册关于二者的描述

strcpy

The strcpy() function copies the string pointed to by src, includ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值