memset()函数
来源:互联网 发布:手机支付宝软件 编辑:程序博客网 时间:2024/05/21 17:38
在写程序中有几个函数总是让我头疼如memst,memcpy,strncpy等
memst函数
所在的头文件c中#include <string.h>,c++中#include <cstring>
函数原型:void *memset(void *s, int ch, size_t n) ;
作用:将s所指向的后n个字节用ch初始化,并返回s指针,是对较大的数组和结构体进行初始化最快的一种方式
注意的是memest是按字节进行初始化的
例一:
#include <string>#include <iostream>using namespace std ;int main(){char str[20] ;memset(str, '0', sizeof(str)) ;for (int i = 0; i < 20; ++i)cout <<' '<< str[i] ;system("pause") ;return 0 ;}
输出为:
例二:
#include <string>#include <iostream>using namespace std ;int main (){ char str[] = "almost every programmer should know memset!"; memset (str,'-',6); puts (str); system("pause") ; return 0;}
输出为:
后n个字节进行初始化,由于计算机采用的是大端模式,所以表现成了字符串的前6个字符初始化成了‘-’
例三:
#include <string>#include <iostream>using namespace std ;int main(){int a[5] ;memset(a, 1, sizeof(int) * 5) ;for (int i = 0; i < 5; ++i)cout <<' '<< a[i] ;system("pause") ;return 0 ;}
#include <string>#include <iostream>using namespace std ;int main(){int a[5] ;memset(a, 0, sizeof(int) * 5) ;for (int i = 0; i < 5; ++i)cout <<' '<< a[i] ;system("pause") ;return 0 ;}
上面的输出:
下面的输出:
其实我们想把这个数组初始化成1,但是memset是按字节初始化的所以出现了错误,下面是可以将int数组初始化成0
例四:memset经常用于初始化结构体
#include <string>#include <iostream>using namespace std ;struct sample_struct{ char csName[16]; int iSeq; int iType;};int main(){struct sample_struct a[5] ;memset(a, 0, sizeof(struct sample_struct) * 5) ;system("pause") ;return 0 ;}
memset:是按字节对一块连续的内存按字节进行初始化
- memset函数
- memset函数
- memset()函数
- memset函数
- memset 函数
- memset函数
- memset() 函数
- memset函数
- memset函数
- memset函数
- memset 函数
- memset函数
- memset 函数
- memset函数
- memset函数
- memset 函数
- memset函数
- memset函数
- 超酷的实时颜色数据跟踪javascript类库 - Tracking.js
- Java几款性能分析工具的对比
- hdu 1027 Ignatius and the Princess II
- Radix TRee
- android UI学习笔记(布局)
- memset()函数
- 虚拟机下如何安装ISP编程下载器(或JTAG仿真器)
- Cocos2d-x中的draw绘制
- Matlab学习笔记三:绘图
- 1011. World Cup Betting (20)-PAT
- zedboard---------在主机Ubuntu下面建立和开发板(busybox文件系统)通信的网络文件系统
- typedef定义指针
- JAVA基础之理解JNI原理
- 突然决定要写博客了