memset初始化内存
在suse 9,运行man memset 查看memset的解释如下:
“NAME
memset - fill memory with a constant byte
SYNOPSIS
#include <string.h>
void *memset(void *s, int c, size_t n);
DESCRIPTION
The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c.
//从指针s开始,依次填充n个bytes,每个byte的值为c.
RETURN VALUE
The memset() function returns a pointer to the memory area s.”
int main()
{
int *ptr = (int *)malloc(8*sizeof(int));
memset((void *)ptr, 0xFF, 8);
free(ptr);
return 0;
}
在执行memset前,查看ptr内存如下:
(gdb) x /8xw ptr
0x603090: 0x00000000 0x00000000 0x00000000 0x00000000
0x6030a0: 0x00000000 0x00000000 0x00000000 0x00000000
在执行memset后,查看ptr内存如下:
(gdb) x /8xw ptr
0x603090: 0xffffffff 0xffffffff 0x00000000 0x00000000
0x6030a0: 0x00000000 0x00000000 0x00000000 0x00000000
如果修改memset 行代码为:
memset((void *)ptr, 0xFF, 8*sizeof(int));
在执行完memset后,查看内存如下:
(gdb) x /8xw ptr
0x603090: 0xffffffff 0xffffffff 0xffffffff 0xffffffff
0x6030a0: 0xffffffff 0xffffffff 0xffffffff 0xffffffff
这才是我们想要的结果。
memset((void *)ptr, 0x1234, 8);
(gdb) x /8xw ptr
0x603090: 0x34343434 0x34343434 0x00000000 0x00000000
0x6030a0: 0x00000000 0x00000000 0x00000000 0x00000000
所以在用memset初始化内存时,第三个参数勿忘了 n * sizeof(指针类型).
memset初始化内存相关推荐
- 使用memset初始化数组
写在前面的ATTENTION:用memset初始化非char型(eg. int型.float型-)数组时,假如初始化值非0,可能导致错误的结果. 先举个通常用法的栗子, 将int型数组arr的元素初始 ...
- C++:用memset初始化数组
1.初始化数组 定义完数组之后有三种初始化方式 int A[20]={0}; int A[20]; for(i=0;i<sizeof(A)/sizeof(A[0]);i++) A[i]=0; i ...
- c++使用memset初始化数组
如果不明确指出初始化列表,那么基本类型是不会被初始化的(除全局变量和静态变量外),所有的内存都是"脏的":而类类型则会为每个元素调用默认构造函数进行初始化. 使用memset初始化 ...
- 转: C++ 中 ZeroMemory、memset 易内存出错
转自:https://blog.csdn.net/tjunxin/article/details/8540259 https://blog.csdn.net/my_business/article/d ...
- 【C++】C++11 STL算法(八):对未初始化内存的操作(Operations on uninitialized memory)、C库(C library)
对未初始化内存的操作(Operations on uninitialized memory) 一.uninitialized_copy 1.原型: template< class InputIt ...
- oracle 修改sgamaxsize_oracle初始化内存配置参数(sga,pga,sharepool)
小白在日常工作中经常遇到数据库启动报错,其中80%都是跟数据库的初始化内存参数有关,现整理一份模板,以期后用 1. 查出linux服务器总的内存:8G左右 integer memTotalSize=` ...
- linux初始化内存盘卡住,Linux系统内存磁盘初始化技术详细解析
转自:http://m.zol.com.cn/article/1271270.html?via=index Linux内存初始化技术(initrd)用于支持两阶段的系统引导过程,是在系统启动过程中被挂 ...
- memset() 初始化类对象
今天看到迅雷2014校招一道笔试题如下: [cpp] view plaincopy #include <iostream> using namespace std; class paren ...
- 服务器一直显示初始化,服务器一直初始化内存
服务器一直初始化内存 内容精选 换一换 本文以云服务器的操作系统为"Windows Server 2012 R2 Standard 64bit".磁盘容量为3 TB举例,提供容量大 ...
最新文章
- IAS的工作原理(一)作为 RADIUS 服务器的 IAS
- 为什么道理都懂,却还是一事无成
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- Linux下NFS(网络文件系统)的建立与配置方法
- UOJ #579. 树上的颜色
- vue循环中的v-show
- python日志_python 日志模块
- RocketMQ消息消费源码分析
- ucos操作系统(2)——OSTimeDly
- 论文写作笔记4 期刊选择-医学计算机
- 《缠中说禅108课》29:转折的力度与级别
- IDAE Keystore was tampered with报错解决
- jdbc连接mysql数据库,设置字符集编码
- zabbix php问题 Call to undefined function array_column()
- 特斯拉是l3还是l2_特斯拉是l3还是l2
- Windows系统的【Windows照片查看器】没有了
- 快递查询小程序的源码
- 雷军情困金山,小米的情怀使命!
- 微信小程序开发——JS中字符和数组的操作
- AR应用开发--EasyAR初体验(新手向)
热门文章
- 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法
- 十五天精通WCF——第三天 client如何知道server提供的功能清单
- 基于visual Studio2013解决面试题之0403串联字符串
- 一个虚函数和虚继承的问题。
- sybase Invalid command line argument 'and'.
- axure动态登录和html5,Axure8原型设计实战案例:如何实现登录功能?
- 探测服务器操作系统工具,探测服务器操作系统
- mysql 命令源码_MySQL常用命令
- 李白打酒c语言编程,搞定了“李白打酒”,还原问题都迎刃而解
- 平台如何限制ip流量_ABTest 平台设计 - 如何进行流量分桶