2012年10月8日

【转载】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)
2012年10月6日

(转载)关于系统存储时对齐问题——课业没学好的后遗症

摘要: 论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)
2011年11月22日

VS下Qt程序启动遇到的0xc01500002错误

摘要: 纠结了很久的问题,终于得到了解决。出现该问题的可能有几个:1、 VS2005下可能是因为没有安装sp12、也是我纠结了半天的问题 在使用vs2010时,为了方便Qt开发,我们往往会安装qt addin,在引入的菜单中有Option 选项,可以由用户选择默认的Qt版本。但是千万不要误以为你选择地版本就是用来编译用的版本,这个版本仅仅只是在创建Qt工程时的一个默认版本罢了。在编译时,还是会选择使用Project Setting下标示的版本。今天弄了大半天,就是没有弄清楚这个问题。我安装了4.6.3 4.7.3,Qt setting下默认的是4.6.3,但是Option下选择的是4.7.3,而我需. 阅读全文
posted @ 2011-11-22 17:00 Edgar Liao 阅读(959) 评论(0) 推荐(0)
2011年7月10日

CNBlogs的开始

摘要: 2011年7月10日。大三的暑假,慢慢开始接触真正意义上的软件项目,也开始注意CNBlogs,CSDN这一类技术交流网站。对比之下,觉得CNBlogs给人的感觉更好。从今天开始,也在这个平台上记录自己学习提高的一点一滴,与大家分享,跟大家一起进步。Edgar 2011年7月10日晚于一号楼315A宿舍 阅读全文
posted @ 2011-07-10 22:17 Edgar Liao 阅读(128) 评论(0) 推荐(0)