我只是想读取系统内存,而不是为其他进程分配的内存,只是释放内存.我尝试使用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?你能建议一些阅读公羊的工具吗?
这是真的,malloc()本身并没有初始化的内存,但操作系统不一般消毒它交给你的过程,当它请求更多的内存.这是一项安全措施.
如果您希望直接读取物理内存,可以通过打开/dev/mem并映射感兴趣的部分来实现mmap().权限/dev/mem通常会限制对root的访问权限.