昨晚有小伙伴问了一道题,感觉挺经典的。 1 int a[5] = {1, 2, 3, 4, 5};2 3 int *ptr = (int *) (&a + 1);4 5 printf("%d %d \n\r", *(a + 1), *(ptr - 1) );从内存分布的角度来解析:&a和a做右值时....
分类:
编程语言 时间:
2015-12-27 13:25:48
阅读次数:
298
.C语言内存分布图.什么是堆和栈,它们在哪儿?. 上文原文.局部变量、全局变量、堆、堆栈、静态和全局.C++内存管理.c语言 动态分配内存.32位系统最大只能支持4GB内存之由来
分类:
其他好文 时间:
2015-12-16 16:59:13
阅读次数:
140
1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构:栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值等。由编译器自动创建与释放...
分类:
其他好文 时间:
2015-12-01 14:33:11
阅读次数:
168
jvm 1.7 版本:jvm 的内存分为堆和非堆两大部分。堆:堆分为 新生代和老年代。一般对象都会在新生代的内存中创建,新生代中的对象经过几次的GC 回收后依然存活(这个次数可以设置)则移动到老年代。新生代和老年代的内存不足时都会触发GC。新生代的GC 的方法一般为复制清理,而老年代则多为标记清理。...
分类:
其他好文 时间:
2015-11-20 17:07:31
阅读次数:
131
怎样恢复数据被改过的代码点击m进入内存分布图双击进入文件头将过大的值一一修改为正常值普通程序没有动态链接表所以值改为0保存:首先记住地址其次选中差不多的长度,保存正常的程序
分类:
其他好文 时间:
2015-10-30 17:02:10
阅读次数:
200
去除nag窗口:方法一将je改成jmp跳过messageboxA方法二全部填充成Nop,选中右键二进制Nop填充第三种方法push的值改成1使句柄不存在获得模块句柄:第四种修改入口地址点击m进入内存分布图找到文件都双击进入找到入口点的地址返回主窗口将地址改成我们所需要的入口点的地址保存就可以了,再次...
分类:
其他好文 时间:
2015-10-30 17:01:27
阅读次数:
198
典型的C语言的内存分布由以下几块组成: ? Test segment (文本段) ? Initialzed data segment (初始化数据段) ? Uninitialized data segment (未初始化数据段) ? Stack (栈) ? Heap...
分类:
编程语言 时间:
2015-10-27 21:35:08
阅读次数:
266
java 多维数组遍历的顺序的性能问题ps:下图为java多维数组内存分布原理。出自:http://math.hws.edu/javanotes/c7/two-dimensional-array.png出自:http://www.importnew.com/16742.html
分类:
编程语言 时间:
2015-10-27 15:19:56
阅读次数:
182
union w ?{? ??int a; ??char b; ?} c; ? Union的大小为其内部所有变量的最大值,并且按照类型最大值的整数倍进行内存对齐。 ? 上述w,按int,4字节对齐。因此sizeof(w) = 4. ?union w ?{? ??int...
分类:
其他好文 时间:
2015-10-09 21:32:20
阅读次数:
221
MIT JOS lab2首先把内存分布理清楚,由/boot/main.c可知这里把kernel的img的ELF header读入到物理地址0x10000处这里能够回想JOS lab1的一个小问。当时是问的bootloader怎么就能准确的吧kernle 镜像读入到相应的地址呢?这里就是main.c在...
分类:
其他好文 时间:
2015-10-09 12:18:50
阅读次数:
389