前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内存操作函数之memset和memcpy

内存操作函数之memset和memcpy

作者头像
大忽悠爱学习
发布2021-03-02 14:45:50
2K0
发布2021-03-02 14:45:50
举报
文章被收录于专栏:c++与qt学习

memset函数

包含头文件:string或者memory

代码语言:javascript
复制
extern void *memset(void *buffer, int c, int count) 
  1. buffer:为指针或是数组,
  2. c:是赋给buffer的值,
  3. count:是buffer的长度.

这个函数在socket中多用于清空数组.

如:原型是memset(buffer, 0, sizeof(buffer))

Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;

例:char a[100];memset(a, ‘/0’, sizeof(a)); memset可以方便的清空一个结构类型的变量或数组。

清空数组

代码语言:javascript
复制
char a[100];memset(a, '/0', sizeof(a));

清空结构体:

代码语言:javascript
复制
struct sample_struct
{
char csName[16];
int iSeq;
int iType;
};

 

//对于变量:
struct sample_strcut stTest;

//一般情况下,清空stTest的方法:

stTest.csName[0]='/0';
stTest.iSeq=0;
stTest.iType=0;

//用memset就非常方便:
memset(&stTest,0,sizeof(struct sample_struct));

清空结构体数组:

代码语言:javascript
复制
struct sample_struct TEST[10];
memset(TEST,0,sizeof(struct sample_struct)*10);

memcpy函数

代码语言:javascript
复制
void *memcpy(void*dest, const void *src, size_t n);

包含头文件:string或者memory 功能:从源src所指的内存地址的起始位置开始,拷贝n个字节的数据到目标dest所指的内存地址的起始位置中。 说明: 1)src和dest所指内存区域不能重叠,函数返回指向dest的指针。如果src和dest以任何形式出现了重叠,它的结果是未定义的。

2)与strcpy相比,memcpy遇到’\0’不结束,而且一定会复制完n个字节。只要保证src开始有n字节的有效数据,dest开始有n字节内存空间就行。

3)如果目标数组本身已有数据,执行memcpy之后,将覆盖原有数据(最多覆盖n个)。

如果要追加数据,则每次执行memcpy()后,要将目标地址增加到要追加数据的地址。

4)source和destin都不一定是数组,任意的可读写的空间均可

注意:memcpy是将原字符串全部拷贝,连同\0也会拷贝 strcpy遇到\0会停止拷贝

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<memory.h>
int main()
{
	char ch[20] = "abc\0efghj";
	printf("%s\n", ch);
	char ch1[20];
	memcpy(ch1, ch, sizeof(ch));
	printf("%s\n", ch1);
	printf("验证是否将原字符串连同结束符一起拷贝\n");
	for (int i = 4; i <=10; i++)
	{
		printf("%c", ch1[i]);
	}
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • memset函数
  • memcpy函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档