寻找分配的内存

Joh*_*inz 0 c linux memory

  • 平台:x86 Linux 3.2.0(Debian 7.1)
  • 编译:GCC 4.7.2(Debian 4.7.2-5)

我正在编写一个函数,通过读取"随机"值的已分配内存部分来生成"随机"整数.该想法基于未初始化变量具有未定义值的事实.我最初的想法是使用malloc()分配一个数组,然后使用其未初始化的元素生成一个随机数.但malloc()往往会返回NULL内存块,所以我无法保证有任何东西可以读取.所以我考虑读取一个单独的进程内存,以便几乎保证NULL以外的值.我目前的想法是以某种方式找到第一个有效的内存地址并从那里读取,但我不知道如何做到这一点.我尝试将指针初始化为NULL,然后将其递增1,但如果我尝试打印引用的内存位置,则会发生分段错误.所以我的问题是如何读取单独的进程内存.除了阅读之外,我不需要对内存做任何事情.

Yu *_*Hao 5

该想法基于未初始化变量具有未定义值的事实.

不,你不能.它们具有垃圾值,这意味着无论发生在内存中的什么,它们都不是随机的.