10 2012 档案
【转载】delete & delete[]
摘要:C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。对于 (1),毫无疑问 delete[] 和 delete 是等同的。但是对于 (2),情况就发生了变化。delete p1 在回收空间的过程中,只有 p1[0] 这个对象调用了析构函数,其它对象如 p1[1]、p1 [2] 等都没有调用自身的析 阅读全文
posted @ 2012-10-08 18:56 Edgar Liao 阅读(260) 评论(0) 推荐(0)
(转载)关于系统存储时对齐问题——课业没学好的后遗症
摘要:论struct的长度2009-12-16 23:14什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如.. 阅读全文
posted @ 2012-10-06 22:43 Edgar Liao 阅读(145) 评论(0) 推荐(0)
写文件时文件长度莫名增加的问题
摘要:这两天写文件,发现得到的文件总是比自己预想的长,多出好多字节被这个问题弄了好久,最后总算弄明白了在使用fwrite时,如果想保证完全按照自己希望的长度来写,需要使用 wb,按二进制来写文件如果只是使用 w 的话,文件系统会自动在 0x0A 前加上 0x0D, 也就是说会自己将换行符改成回车+换行之前一直没有在意这些,总结起来就是写过的代码太少了…… 阅读全文
posted @ 2012-10-06 12:56 Edgar Liao 阅读(208) 评论(0) 推荐(0)