memset()函数详解

1、头文件

    C中为<memory.h> 或 <string.h>

     C++中为<cstring>

2、原型及作用
void *memset(void *s,int c,size_t n)

    其中,s是一个指针或数组,c是赋给s的值,n是将修改的s的长度,即s的前n个字节。

    作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

3、常用

    常用于清空一个结构体类型的变量或数组,例如清空一个结构体:

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));//如果是数组:
struct sample_struct TEST[10];memset(TEST,0,sizeof(struct sample_struct)*10);

   也常用于malloc申请一段内存后,对内存的初始化:

double* wid = (double*)malloc((num+1) *sizeof(double));
if (wid == NULL)  
{  cout << "Fail to allocate memory to wid" << endl;  exit(1);  
}  
memset(wid, 0, (num + 1) *sizeof(double));//初始化为0
 4、注意

    memset这个函数的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去

    (1) 若ptr指向char型地址,value可为任意字符值;

    (2) 若ptr指向非char型,如int型地址,要想赋值正确,value的值只能是-1或0,因为-1和0转化成二进制后每一位都是一样的,设int型占4个字节,则-1=0XFFFFFFFF, 0=0X00000000。

参考:赋值过程讲解

   例子详解



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq 如何让点击其他地方隐藏_详解jQuery除指定区域外点击任何地方隐藏DIV功能

本文主要介绍了jQuery除指定区域外点击任何地方隐藏p的相关资料,代码简单易懂&#xff0c;非常不错&#xff0c;具有参考借鉴价值&#xff0c;需要的朋友可以参考下&#xff0c;希望能帮助到大家。具体代码如下所示&#xff1a;$(body).click(function(e) {var target $(e.tar…

linux系统编程之进程(八):守护进程详解及创建,daemon()使用

一&#xff0c;守护进程概述 Linux Daemon&#xff08;守护进程&#xff09;是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务&#xff0c;不是对整个系统就是对某个用户程序提供服务…

您还在调试吗?

调试是“以交互方式运行程序/方法&#xff0c;在每个语句后中断执行流程并显示……的过程。”简而言之&#xff0c;它是一种非常有用的技术……对于一个糟糕的程序员而言。 或仍然在用C编写过程代码的老程序员。面向对象的程序员从不调试其代码-他们编写单元测试。 我的意思是&…

RESTful规范

本文目录 什么是RESTful RESTful API设计 基于Django实现 什么是RESTful REST与技术无关&#xff0c;代表的是一种软件架构风格&#xff0c;REST是Representational State Transfer的简称&#xff0c;中文翻译为“表征状态转移”REST从资源的角度类审视整个网络&#xff0c;它…

反向输出dna序列_蛋白质序列反向(逆向)翻译成DNA序列-在线工具

请粘贴蛋白质序列&#xff0c;如果需要输入多个序列&#xff0c;请以fasta格式输入&#xff0c;输入总长度不超过2万个字符。>testACDEFGHIKLMNPQRSTVWY*推荐使用IE 8.0以上、chrome或者Firefox等浏览器。请输入该蛋白来源物种的密码子使用表(GCG格式)&#xff0c;下表示大肠…

子函数的指针释放问题

C语言中遇到一个这样的问题&#xff1a;子函数中malloc了一个指针存储数据&#xff0c;作为该子函数的返回值&#xff0c;return到主函数。那么这个指针应该在哪里释放呢&#xff1f;显然不能在子函数里释放&#xff0c;否则返回值没有意义。这样就应该在主函数里释放&#xff…

利用cookie模拟登陆知乎

我们知道一些网站是需要账号密码才可以登陆的&#xff0c;例如知乎。而利用requests库里的get方法的headers参数可以达到这个目的 首先在知乎的网页上登陆自己的知乎账号&#xff0c;利用chrome的开发者工具&#xff08;F12&#xff09;可以捕获我们的get方法向浏览器提供的coo…

linux中fork()函数详解(原创!!实例讲解)

一、fork入门知识 一个进程&#xff0c;包括代码、数据和分配给进程的资源。fork&#xff08;&#xff09;函数通过系统调用创建一个与原来进程几乎完全相同的进程&#xff0c;也就是两个进程可以做完全相同的事&#xff0c;但如果初始参数或者传入的变量不同&#xff0c;两个进…

C++ vector的释放

项目上用到vector容器&#xff0c;没有手动释放&#xff0c;总是会在这里出现内存分配不成功的问题&#xff0c;因此对vector的释放了解了一下。初始代码如下&#xff1a; vector <float*> dets(nTotalLayers); //dets : 记录每层图像的 Hessian 行列式&#xff1b; for …

设计模式 工厂方法_使用工厂方法模式设计最佳实践

设计模式 工厂方法在前面的“设计模式”示例中&#xff0c;我们解释了当今常用的“工厂”模式。 在本节中&#xff0c;我们将了解具有更多抽象的更高级的解决方案。 该模式称为工厂方法设计模式。 定义&#xff1a; Factory方法模式提供了一种用于创建对象的方法&#xff0c;…

C Programming Language

代做module作业、代做C/C编程设计作业、代写Programming Language作业、代做C/C课程设计作业C Programming LanguageContribution to module (weighting: 20 %)1st Semester 2018-2019Out: WED. 5th Dec. 2018 Due: 18:00[GMT], WED. 19th Dec. 2018Main objective of the assi…

python修改列表中字典内的值_python修改字典内key对应值的方法

python学习笔记&#xff1a;字典python版本&#xff1a;Python 2.6.6系统环境&#xff1a;CentOS release 6.2 x86_64本文参考了互联网上前辈的一些文章一、字典是python中最灵活的内置数据结构类型&#xff0c;如果把列表看作是有序的对象集合&#xff0c;那么字典就是无序的集…

MATLAB使用技巧

1、ctrl c 或者 ctrl break 强行中断程序运行 2、变量X 右键save as为DX后&#xff0c;再次使用时load有区别&#xff1a;load(DX.mat) 得到的是X这个变量&#xff0c;直接出现在workspace里&#xff1b;Xnew load(DX.mat)得到的是一个名称为Xnew的结构体&#xff0c;里面包含…

Beta 冲刺 (2/7)

团队信息 队名&#xff1a;爸爸饿了组长博客&#xff1a;here作业博客&#xff1a;here组员情况 组员1&#xff08;组长&#xff09;&#xff1a;王彬 过去两天完成了哪些任务 完成考试确定历史记录页面与排行榜页面的前端页面风格接下来的计划 & 还剩下哪些任务 各个食堂平…

您真的需要instanceof吗?

使用instanceof是一种代码味道。 我认为我们可能对此表示同意。 每当我看到这样的构造时&#xff0c;我肯定会出现问题。 也许有人只是在进行更改时没有注意到问题&#xff1f; 也许有一个主意&#xff0c;但是它太复杂了&#xff0c;以至于需要太多的精力或时间才能让开发人员…

python 累积正态分布函数_Python编程基础—Python语句书写规范

Python语句中没有专门的“结束符”。Python解释器不是根据"结束符"来判断语句是否结束,而是根据语法的完整性来判断。一、Python语句编写规则①通常是一行一句x1 1 x2 2 x3 3 print(x1,x2,x3)②也可以一行多句&#xff0c;用语句分隔符“;”对两个语句进行标识x1 …

MATLAB批量改变图片大小

%2018年6月28日11:07:15 %把一个目录下的图片缩放到指定大小 clc clear ratio 0.2;%缩放比例 cd(F:\数据集\crumpled clothes\cloth3\original image\);%不加这句话找不到图片 dpath F:\数据集\crumpled clothes\cloth3\original image\*.JPG;%找到路径下所有格式为.JPG的文件…

基于Libevent的HTTP Server

简单的Http Server 使用Libevent内置的http相关接口&#xff0c;可以很容易的构建一个Http Server&#xff0c;一个简单的Http Server如下&#xff1a; #include <event2/event.h> #include <event2/buffer.h> #include <event2/http.h> #include <Winso…

python写入数据的一种措施_Python 文件数据读写的具体实现

文件数据读写读写文件&#xff0c;本质上是请求操作系统打开一个文件对象&#xff0c;然后&#xff0c;通过操作系统提供的接口从这个文件对象中读取数据(读文件)&#xff0c;或者把数据写入这个文件对象(写文件)。文件读取使用 Python 内置 open() 函数&#xff0c;以 rt 的模…

MATLAB的dir函数

1、作用获得指定文件夹下的所有子文件夹和文件,并存放在在一种文件结构体数组中. 2.使用方法dir(.)列出当前目录下所有子文件夹和文件dir(G:\Matlab)列出指定目录下所有子文件夹和文件dir(G:\Matlab\*.jpg)列出当前目录下符合正则表达式的文件夹和文件3.例如&#xff1a;列出文…