在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初始化内存相关推荐

  1. 使用memset初始化数组

    写在前面的ATTENTION:用memset初始化非char型(eg. int型.float型-)数组时,假如初始化值非0,可能导致错误的结果. 先举个通常用法的栗子, 将int型数组arr的元素初始 ...

  2. C++:用memset初始化数组

    1.初始化数组 定义完数组之后有三种初始化方式 int A[20]={0}; int A[20]; for(i=0;i<sizeof(A)/sizeof(A[0]);i++) A[i]=0; i ...

  3. c++使用memset初始化数组

    如果不明确指出初始化列表,那么基本类型是不会被初始化的(除全局变量和静态变量外),所有的内存都是"脏的":而类类型则会为每个元素调用默认构造函数进行初始化. 使用memset初始化 ...

  4. 转: C++ 中 ZeroMemory、memset 易内存出错

    转自:https://blog.csdn.net/tjunxin/article/details/8540259 https://blog.csdn.net/my_business/article/d ...

  5. 【C++】C++11 STL算法(八):对未初始化内存的操作(Operations on uninitialized memory)、C库(C library)

    对未初始化内存的操作(Operations on uninitialized memory) 一.uninitialized_copy 1.原型: template< class InputIt ...

  6. oracle 修改sgamaxsize_oracle初始化内存配置参数(sga,pga,sharepool)

    小白在日常工作中经常遇到数据库启动报错,其中80%都是跟数据库的初始化内存参数有关,现整理一份模板,以期后用 1. 查出linux服务器总的内存:8G左右 integer memTotalSize=` ...

  7. linux初始化内存盘卡住,Linux系统内存磁盘初始化技术详细解析

    转自:http://m.zol.com.cn/article/1271270.html?via=index Linux内存初始化技术(initrd)用于支持两阶段的系统引导过程,是在系统启动过程中被挂 ...

  8. memset() 初始化类对象

    今天看到迅雷2014校招一道笔试题如下: [cpp] view plaincopy #include <iostream> using namespace std; class paren ...

  9. 服务器一直显示初始化,服务器一直初始化内存

    服务器一直初始化内存 内容精选 换一换 本文以云服务器的操作系统为"Windows Server 2012 R2 Standard 64bit".磁盘容量为3 TB举例,提供容量大 ...

最新文章

  1. IAS的工作原理(一)作为 RADIUS 服务器的 IAS
  2. 为什么道理都懂,却还是一事无成
  3. SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
  4. Linux下NFS(网络文件系统)的建立与配置方法
  5. UOJ #579. 树上的颜色
  6. vue循环中的v-show
  7. python日志_python 日志模块
  8. RocketMQ消息消费源码分析
  9. ucos操作系统(2)——OSTimeDly
  10. 论文写作笔记4 期刊选择-医学计算机
  11. 《缠中说禅108课》29:转折的力度与级别
  12. IDAE Keystore was tampered with报错解决
  13. jdbc连接mysql数据库,设置字符集编码
  14. zabbix php问题 Call to undefined function array_column()
  15. 特斯拉是l3还是l2_特斯拉是l3还是l2
  16. Windows系统的【Windows照片查看器】没有了
  17. 快递查询小程序的源码
  18. 雷军情困金山,小米的情怀使命!
  19. 微信小程序开发——JS中字符和数组的操作
  20. AR应用开发--EasyAR初体验(新手向)

热门文章

  1. 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法
  2. 十五天精通WCF——第三天 client如何知道server提供的功能清单
  3. 基于visual Studio2013解决面试题之0403串联字符串
  4. 一个虚函数和虚继承的问题。
  5. sybase Invalid command line argument 'and'.
  6. axure动态登录和html5,Axure8原型设计实战案例:如何实现登录功能?
  7. 探测服务器操作系统工具,探测服务器操作系统
  8. mysql 命令源码_MySQL常用命令
  9. 李白打酒c语言编程,搞定了“李白打酒”,还原问题都迎刃而解
  10. 平台如何限制ip流量_ABTest 平台设计 - 如何进行流量分桶