memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的;

包含在头文件中,可以用它对一片内存空间逐字节进行初始化;

原型为 :

void *memset(void *s, int v, size_t n);

这里s可以是数组名,也可以是指向某一内在空间的指针;

v为要填充的值;

n为要填充的字节数;

例子:

struct data

{

char num[100];

char name[100];

int n;

};

struct data a, b[10];

memset( &a, 0, sizeof(a) ); //注意第一个参数是指针类型,a不是指针变量,要加&

memset( b, 0, sizeof(b) ); //b是数组名,就是指针类型,不需要加&

例2:

char str[9];

我们用memset给str初始化为“00000000”,用法如下

memset(str,0,8);

注意,memset是逐字节拷贝的。

例3:

int num[8];

我们用memset给str初始化为{1,1,1,1,1,1,1,1},

memset(num,1,8);//这样是不对的

一个int是4个字节的,8个int是32个字节,所以首先要赋值的长度就不应该为8而是32。

因为memset是逐字节拷贝,以num为首地址的8字节空间都被赋值为1,

即一个int变为0X00000001 00000001 00000001 00000001,显然,把这个数化为十进制不会等于1的。

所以,在memset使用时要千万小心,在给char以外的数组赋值时,只能初始化为0或者-1。

(如果用memset(a,1,20);

就是对a指向的内存的20个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是1000000010000000100000001,就等于16843009,就完成了对一个INT元素的赋值了。)

#include //我试了一下,C语言这么用,C++还可以用

#include

void main( void )

{

char buffer[] = "This is a test of the memset function";

printf( "Before: %s\n", buffer );

memset( buffer, '*', 4 );

printf( "After: %s\n", buffer );

}

输出:

Before: This is a test of the memset function

After: **** is a test of the memset function

到此这篇关于C/C++ 中memset() 函数详解及其作用介绍的文章就介绍到这了,更多相关C++  memset() 函数内容请搜索随便开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持随便开发网!

c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍相关推荐

  1. C/C++中命名空间(namespace)详解及其作用介绍

    命名空间 (namespace) 可以帮助我们区分不同库中相同名称的函数, 类, 变量等. 使用了命名空间即定义了上下文. 命名空间就是定义了一个范围. 命名空间 为了解决 C++ 标准库中的标识符与 ...

  2. Matlab中 pdist 函数详解

    学习笔记,仅供参考,有错必纠 转载自:Matlab中 pdist 函数详解(各种距离的生成); pdist Pairwise distance between pairs of objects. Sy ...

  3. matlab中xcorr函数详解

    Matlab中xcorr函数详解 引言 在matlab中查找相关函数时,找到了xcov函数和xcorr函数,仔细看了帮助文档,发现虽然计算公式不一样,但是两个函数用法相同,计算出的值也相同,于是在翻了 ...

  4. Linux中fork()函数详解

    Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  5. linux 中 sigaction 函数详解

    linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...

  6. 【C语言学习笔记】SWAP函数详解

    SWAP函数详解 本篇文章通过swap函数来深入了解C语言中函数的用法,与指针的应用.参考资料来源于经典书籍与技术博客的分享. 在复习完生存期相关的知识点后(详情可转至此处),初步认识了函数与本地变量 ...

  7. C语言网络编程:accept函数详解

    文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...

  8. C++语言篇 第九章 自定义函数详解

    序言 一个 C++ 程序无论大小,都由一个或者多个函数组成,而且其中必须有且只有一个函数main(),称之为"主函数". 由函数 main()调用其他函数来完成程序的特定功能.当然 ...

  9. PHP开启session的函数,ThinkPHP中session函数详解

    在PHP中使用$_SESSION来操作session,而ThinkPHP提供了session的封装函数session().单单这一个函数就实现了session的增删改查的功能.下面我们分别来看其应用与 ...

最新文章

  1. Hibernate Synchronizer3——一个和hibernate Tool类似的小插件之使用方法
  2. MD文件图片base64自动编码
  3. ajax学习笔记之一
  4. Eclipse Web开发出现莫名其妙错误
  5. Ubuntu 配置vsftpd实现FTP服务器
  6. macOS Monterey Finder 的新功能
  7. 3lcd和dlp怎么选,DLP和3LCD投影机的选择对比
  8. 神经网络的介绍与模型搭建
  9. 【图像处理】换脸技术哪家强?Python来挑战,一键换脸,毫无破绽~
  10. Java实现HTML页面截图功能
  11. uni-app海报(合成图片)demo
  12. 获取驱动失败Java连接数据库,好哀伤,java连接sql数据库加载驱动就是失败了
  13. android落花效果 字体渐变,落花有情 亲花有趣
  14. BAT大牛分享如何在最短的时间升职为阿里Java架构师
  15. 用Python中的py2neo库操作neo4j,搭建简单关联图谱—基于家有儿女中的人物关系
  16. 浅谈“全栈工程师需要掌握哪些技能”
  17. Concepts:Overview
  18. 零知识证明从0到1,ZK简介
  19. 北京邮电大学计算机学院考研夏令营,北京邮电大学理学院2021年保研夏令营活动通知...
  20. jquery设置背景图片:$(this).css(background-image,url(on.jpg));就可以了

热门文章

  1. python利器-Python利器|给大家推荐几个既好看又好用的-Python编程器
  2. 大神演示win10系统语音识别应用的详细教程
  3. Position属性四个值:static、fixed、absolute和relative的区别和用法
  4. python selenium安装教程_Python Selenium模块安装使用教程详解
  5. 百度DOC php,PHP对接百度文档服务DOC
  6. 字典树实现_trie 字典树的实现方法
  7. 【栈与队列】剑指offer:两个栈模拟队列
  8. 【Java笔记】四种权限修饰符总结
  9. 给 VS2008 / VS2010 MFC 项目添加启动画面
  10. IntelliJ IDEA2017创建web工程并实现远程部署tomcat