【C语言】内存操作函数

注:以下函数均包含在 stdlib.h 中

memcpy

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

功能:

memory copy 内存拷贝

参数:

目标指针保存着拷贝的目的地的地址,源指针保存着要拷贝的内容的地址;num 表示要拷贝的内容的大小,单位字节(8 bit)

返回:

函数 memcpy 开始时会保存 destination 指针中的地址,然后从 source 的位置开始向后复制 num 个字节的数据到 destination 的内存位置,并且这个函数在遇到 '\0' 的时候并不会停下来,当 num 个字节全部拷贝完成后,函数停止并返回一开始保存的目标空间的地址

memmove

void * memmove ( void * destination, const void * source, size_t num );

功能:

memory move 内存移动

参数:

目标指针保存着移动的目的地的地址,源指针保存着要移动的内容的地址;num 表示要移动的内容的大小,单位字节(8 bit)

返回:

memmove 和memcpy 的功能基本一致,差别就在于函数处理的源内存块和目标内存块是可以重叠的,在memcpy 中如果重叠的话程序员无法确认结果,这样编程容易出现问题,所以在重叠时尽量使用 memmove。她返回的也是目标空间的头地址

memset

void *memset(void *s, int ch, size_t n)

功能:

memory setting 内存设置 

参数:

s 指针指向要设置内存的地址,ch 为要设置成的值,n 为字节数 

返回:

将s中当前位置后面的n个字节用 ch 替换并返回 s 

memcmp

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

功能:

memory compare 内存比较 

参数:

两个不可修改的指针,确保了数据的安全,num 为要比较的字节数 

返回:

比较从ptr1和ptr2指针开始的num个字节,一致返回 0 ,不一致返回非 0 (结果一般为两个指针里的内容相减得到的)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值