如何通过程序扫描系统内存?

1 c c++

我只是想读取系统内存,而不是为其他进程分配的内存,只是释放内存.我尝试使用malloc分配大量内存:

char *ptr;
ptr = (char*)malloc((1024*1024*700)*sizeof(char));
Run Code Online (Sandbox Code Playgroud)

我试图打印它,但它打印空字符(即什么都没有).

printf("%c",ptr[i]);
Run Code Online (Sandbox Code Playgroud)

所以我将它的类型转换为int,认为它可以打印它的ascii.

printf("",(int)ptr[i]);
Run Code Online (Sandbox Code Playgroud)

打印的所有值均为0.

malloc没有初始化分配的内存,不是吗?我无法打印内存.

我尝试在linux,fedora 14,最新的gcc和带有dev-c ++的windows xp

我只是想访问内存.是否可以通过使用地址并从中获取日期来通过Linux中的某些内核pgm?你能建议一些阅读公羊的工具吗?

caf*_*caf 7

这是真的,malloc()本身并没有初始化的内存,但操作系统一般消毒它交给你的过程,当它请求更多的内存.这是一项安全措施.

如果您希望直接读取物理内存,可以通过打开/dev/mem并映射感兴趣的部分来实现mmap().权限/dev/mem通常会限制对root的访问权限.