摘要: 如果我们的程序需要动态内存的话,则迟早会调用Win32函数VirtualAlloc。但是程序也可以不调用VirtualAlloc,而是直接调用Windows堆函数或者CRT堆函数。不过,知道VirtualAlloc如何工作,可以帮助我们更好地理解这些调用函数。 首先,必须知道保留(Reserved)内存和占用(Committed)内存的含义。当内存放保留时,一段连续虚拟地址空间被留出。例如,假如我们的程序要使用5 -MB内存块(称为区域),但并不是要马上全部使用,则我们可以调用VirtualAlloc函数,使用MEM_RESERVE分配类型参数。Windows会以64 KB为边界计算该区域的起 阅读全文
posted @ 2013-10-24 19:45 红宝石 阅读(3875) 评论(0) 推荐(1) 编辑
摘要: 程序中用来存放数据的内存分为四块,其实另有一块用于存放代码,这里我们不讨论,这四块分别是:1、全局区(静态区)(static):全局变量和静态变量都存储在这块区域,与其他变量的明显区别就是生命周期不同,在程序结束时,系统会释放这块资源2、文字常量区:常量字符串就是放在这块区域,即是我们常说起的常量池。这块也是在程序结束时由系统释放。3、栈区(stack):存放函数的参数值,局部变量的值等。这块的数据大家就很熟悉了,在进入作用域时分配占用内存,离开作用域时释放占用内存4、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由系统回收。由于这个原因,在C和C++中就有能产生大量程 阅读全文
posted @ 2013-10-24 19:39 红宝石 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 本来想一上来就先复习SQL,然后再是数据库优化之类的东西,但是翻了翻之前上《数据库概念基础》的课件,发现有几个东西还是了解一下比较好。 第一章:数据库基础中几个需要注意的概念 第一节:什么是关系型数据库呢?关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。——摘自《百度百科》(更多深入的理解还是看资料比较好,涉及的内容比较多,如果全部都贴出来会很冗长。例如,什么是关系模型,集合代数又是什么,都是要了解的。我之所以单单贴出来这句话,是为了之后在看到的时候可以根据这句话想起相关的内容。有的时候,一句话的概念并不是要我们去背,而是去理解,自然而然就会记 阅读全文
posted @ 2013-10-24 10:21 红宝石 阅读(334) 评论(0) 推荐(0) 编辑