• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 基于memset()函数的深入理解

基于memset()函数的深入理解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了memset函数,memset函数用法,memset函数头文件,c语言memset函数,c memset函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
今天写软件工程大作业,调了半天的bug,原来是对memset函数认识不到位造成的。
int max[teachRelationNum];
memset(max,0,sizeof(max));
注意啊,可以使用sizeof(max),也可以使用 sizeof(int)*teachRelationNum,不可以直接使用 teachRelationNum,来初始化!
一般情况下,可以这样使用:
memset(max,0,sizeof(max));
memset(max,-1,sizeof(max));
memset(max,'a',sizeof(max));
而不能够赋初值为100之类的,要想赋初值为100,只能通过for循环了。
具体使用策略:
包含<string.h>
    char buffer[] = "Hello world\n";
  printf("Buffer before memset: %s\n", buffer);
  memset(buffer, '*', strlen(buffer) );
  printf("Buffer after memset: %s\n", buffer);
输出结果:
  Buffer before memset: Hello world
  Buffer after memset: ************
  int array[5] = {1,4,3,5,2};
  memset(array,0,5*sizeof(int));
输出结果:0 0 0 0 0
memset(array,1,5*sizeof(int));// 注意 这里与上面的程序不同
输出结果:16843009 16843009 16843009 16843009 16843009
因为memset是以字节为单位就是对array指向的内存的4个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是00000001000000010000000100000001,就等于16843009,就完成了对一个INT元素的赋值了。
所以用memset对非字符型数组赋初值是不可取的!
  例如有一个结构体Some x,可以这样清零:
  memset( &x, 0, sizeof(Some) );
  如果是一个结构体的数组Some x[10],可以这样:
  memset( x, 0, sizeof(Some)*10 );
以上为对memset()的深刻研究,一部分是自己心得,一部分摘自百度百科。

 

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++中memset函数用法详解
  • 详解C语言中的memset()函数
  • 浅析C++中memset,memcpy,strcpy的区别
  • 基于memset()函数的深入理解
  • memset函数的使用分析

相关文章

  • 2017-05-28详解C语言位域的使用与注意事项
  • 2017-05-28DSP中浮点转定点运算--浮点与定点概述
  • 2017-05-28C++中用两个标准容器stack,实现一个队列的方法详解
  • 2017-05-2816种C语言编译警告(Warning)类型的解决方法
  • 2017-05-28C语言关键字大全(共32个)
  • 2017-05-28C语言泛型编程实例教程
  • 2017-05-28基于指针的数据类型与指针运算小结
  • 2017-05-28Cocos2d-x触摸事件实例
  • 2017-05-28VC++实现CStdioFile写入及读取文件并自动换行的方法
  • 2017-05-28C++ decltype类型说明符

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++中vector容器的常用操作方法实例总结
    • C++设计模式之简单工厂模式实例
    • C语言实现大数据文件的内存映射机制
    • 进制转换:二进制、八进制、十六进制、十进制之间的转换
    • C++之WSAAsyncSelect模型实例
    • 四叉树有损位图压缩处理程序示例
    • hdoj 1533 && poj 2195 Going Home
    • VC实现动态菜单的创建方法
    • 深入解析C++中派生类的构造函数
    • C++中Semaphore内核对象用法实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有