服务器之家

服务器之家 > 正文

C语言内存操作函数详解

时间:2022-01-25 14:32     来源/作者:wwhdsg

头文件:#include<memory.h>

 

1.memcpy

作用:内存拷贝

函数原型:

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

使用:

使用格式:memcpy(目的地,原,想操作内存大小(单位字节))

C语言内存操作函数详解

把 "参数2" 起始的 "参数3" 个字节 内容拷贝到 "参数1 '

memecpy函数类似于strncpy。

例:

#include <memory.h>
#include <string.h>
#include <stdio.h>
int main()
{
	int aa[] = { 1,2,3,4 };
	int bb[10] = { 0 };
	memcpy(bb, aa, 4 * sizeof(int));//把aa数组中4*4(每个int类型是4字节)内容拷贝到bb数组
	for (int i = 0; i < 10; i++) //打印bb数组全部数据
	{
		printf("%d ", bb[i]);
	}	
}

最后bb字符串中前4*4个字节的内容被改为aa的内容

C语言内存操作函数详解

注意 :memcpy不能拷贝重叠内存。

#include <memory.h>
#include <string.h>
#include <stdio.h>
int main()
{
	int aa[] = { 1,2,3,4,5,6,7,8,9,10 };
	my_memcpy(aa + 2, aa, 24);
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", aa[i]);
	}
}

输出:

C语言内存操作函数详解

拷贝重叠内存会出现这样的问题。

 

2.memmove

作用:内存拷贝(可拷贝重叠内存)

原型:

void *memmove( void *dest, const void *src, size_t count );

使用与memcpy一样,只是memmove可以拷贝重叠内存

#include <memory.h>
#include <string.h>
#include <stdio.h>
int main()
{
	int aa[] = { 1,2,3,4,5,6,7,8,9,10 };
	memmove(aa + 2, aa, 24);
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", aa[i]);
	}
}

出:

C语言内存操作函数详解

同样的代码使用memmove就可以.

 

3.memcmp

作用:内存比较

函数原型:

int memcmp( const void *buf1, const void *buf2, size_t count );

使用:

使用格式:memcmp(地址1,地址2,想要比较的内存大小 单位bit)

C语言内存操作函数详解

逐字节比较内存大小,

逐字节一对一对比较!!

返回值有三种情况:

<0 “参数1” 与 “参数2” 逐字节比较时遇到的第一对不同的内存时 “参数1” 中数据 < “参数2”。

=0 “参数1” 与 “参数2” 中的前“ 参数” 三个字节的内容完全相等。

>0 “参数1” 与 “参数2” 逐字节比较时遇到的第一对不同的内存时 “参数1” 中数据 > “参数2”。

 

4.memset

作用:内存设置

函数原型:

void *memset( void *dest, int c, size_t count );

使用:

使用格式:memset(地址,一个数,设置多少字节)

例:

#include <memory.h>
int main()
{
	int a[] = {1,2,3,4,5};
	memset(a, 1, 20);//把从a开始的前二十个字节内容改成1
}

结果:

C语言内存操作函数详解

 

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/wwhdsg/article/details/120740424

标签:

相关文章

热门资讯

蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部