C++学习
sufyan2010
这个作者很懒,什么都没留下…
展开
-
从查找一次内存泄漏学到的...
<br />最近写一个程序时,出现了内存泄漏问题。然后到网上搜索了一下,发现了一个简单易用的开源内存泄漏检测工具Visual Leak Detector (VLD) ,在visual c++上工作的很好,其他环境尚未研究。源代码、安装文件可以从codeproject下载,目前最新版本是v1.9b。<br />先说说这个工具的使用。安装完毕,在需要调试的项目中加入把Visual Leak Detector 的Include目录和LIB目录添加到项目的路径中去。再在需要监视的cpp文件头中加入#include转载 2010-07-20 15:15:00 · 430 阅读 · 0 评论 -
(C++)一个愚蠢的错误
<br />#include <string.h><br />#include <string><br />using namespace std;<br />typedef struct Test<br />{<br /> string name;<br /> int a;<br />}Test;<br />int main()<br />{<br /> Test tTest;<br /> memset(&tTest, 0, sizeof(Test));<br />转载 2010-06-18 18:50:00 · 255 阅读 · 0 评论 -
不当使用memset函数带来的麻烦问题
<br /> 通常在C的编程中,我们经常使用memset函数将一块连续的内存区域清零或设置为其它指定的值,最近在移植一段java代码到C++的时候,不当使用memset函数花费了我几个小时的调试时间。考试大提示: 对于虚函数的底层机制很多资料都有较详细阐述,这次的调试感触颇深。<br /> 先来看一段代码,在继承的类Advance之中,有很多属性字段,Examda希望将其清成0或NULL,于是在构造函数中Examda通过memset将当前类的所有属性置0。<br /> class Base{<转载 2010-06-18 18:52:00 · 1170 阅读 · 0 评论 -
C++中慎用memset初始化struct
<br /> 用MFC的检测heap的检测到程序中有内存泄露,可是找了半天也没找到,最后采用逐步排除的方法终于找到了,在使用一个结构的时候出现的堆泄露,结构的初始化我习惯性的用了memset将结构初始为0,可是结构中用了string型的变量,STL的string会自己动态的分配,如果用memset会丢失掉已分配的字符串缓冲区的内存。于是就产生了内存泄露。<br /> 所以使用memset以前,要多注意一下结构中都是什么变量。否则产生问题之后,找起来很难发现的。转载 2010-06-18 18:51:00 · 1033 阅读 · 0 评论 -
VS错误error C3872
<br /> error C3872: '0x3000': this character is not allowed in an identifier<br /> 中文解释 error C3872: “0x3000”: 此字符不允许在标识符中使用<br /> 这主要出现在从文档中拷贝程序代码时,由于含有了中文字符空格而造成的。<br /> <br /> 解决方法,检查出现错误的行数的这一行和前后的一行,删除所有的空格,并确保输入法状态在英文状态,再敲入需要的空格。<br /> 同原创 2010-06-24 12:32:00 · 1127 阅读 · 0 评论