- 博客(10)
- 资源 (21)
- 收藏
- 关注
转载 使用 CRT 库查找内存泄漏
文章来自 点击打开链接内存泄漏,即未能正确释放以前分配的内存,是 C/C++ 应用程序中最难以捉摸也最难以检测到的 Bug 之一。最初少量内存泄漏可能不引人注目,但随着时间的推移,内存泄漏越来越多,就会出现一些征兆,包括性能下降,在应用程序内存不足时发生崩溃。更严重的是,占用了所有可用内存的泄漏应用程序可能会导致其他应用程序崩溃,从而无法确定问题出在哪个应用程序
2015-06-28 18:04:52 3165
原创 C++中头文件的现状
内容来自 effective C++ 第二版 条款49--熟悉标准库标准库中的,不带.h 的头文件都是官方标准,而且都在std空间中。包括以C开头的C语言功能库, 也在std空间中。标准C头文件 stdlib.h 等,同样可以使用,只是不需要使用std命名空间。.h的C++库不是官方标准,也不在std空间中。需要注意的是sting.h 和 cstring都是C语言函数功能库,于是C++
2015-06-25 10:39:11 2954
原创 C++对象的内存模型
看了C++ under the hood之后,C++对象的内存模型是这样的:涉及到虚的,就需要额外的存储空间。虚这里指的是虚函数和虚继承,额外的存储是对象内部需要存储虚函数表指针和虚基类表指针。一个类的内存的分布在VC下是这样的:先是非虚基类子对象(包括非虚基类的虚函数表指针和成员),接着是虚基类表指针,接着才是该类本身扩展的成员,然后是虚基类子对象。该类的虚函数如果在基类中虚线,会在对应的虚
2015-06-25 08:27:35 3136
原创 关于不能将char** 类型转化为 const char**
对于二级指针来说,不能将char** 类型转化为const char** 类型。 const char x = 31; char y = 41; char *q = &y;&x的类型显然为 const char *, &q的类型是char **, 假设能将char **类型转化为 const char **, 那么可以另外定义一个变量:
2015-06-24 22:01:26 5235
原创 QT 画图工具 QWT 和 QwtPolar 在 windows 和 linux 下的编译安装
win8.1 64位+VS2013+qt-opensource-windows-x86-msvc2013_64_opengl-5.4.1测试不行,只能在32位的qt使用win8.1 64位+VS2010+qt-opensource-windows-x86-msvc2013_opengl-5.4.1测试通过。去sourceforce下载点击打开链接 QWT, 我下载的版本是qwt-6.1.
2015-06-16 13:19:40 9817
原创 前缀表达式与后缀表达式
前缀表达式与后缀表达式都可以由中缀表达式来转换而成,由于在转化的过程中已经考虑了优先级,所以前缀表达式和后缀表达式的求值直接借助栈就可以,不再有优先级的规则。中缀表达式转换为前缀表达式和后缀表达式都借助栈来完成。转换时,运算符压栈,数字直接输出。求值时,数字压栈。原理:1、中缀形式的四则运算,相同等级的,总是从前往后计算。2、无论是前缀表达式还是后缀表达式的求值,最先扫描到的运算符肯定是最先求值的...
2015-06-14 14:38:39 4697
原创 再读effective c++
现在所说effective C++的系列历史,最开始Meyers出版的是effective C++第一版,然后有了more effective C++,然后是effective C++的第二版,接着是effective C++的第三版,最后是最新的 effective modern C++。effective modern C++里主要讲C++ 11的现代编程语言特性,包括类型推导,移动语义,右值
2015-06-12 22:10:29 3125
原创 VS2013下的静态链接库和动态链接库的创建和使用
建立控制台程序,静态链接库还是动态链接库,项目配置属性里改成对应的即可。静态库编译之后会生成对应的.lib文件,在工程A中使用时,配置A的属性,1、配置属性 == 》C/C++ ==》常规 附加的include 路径里,添加头文件所在的路径。2、配置属性 == 》链接器 ==》常规 附加库目录里,添加.lib文件所在的路径。3、配置属性 == 》链接器 ==》输入 附加依
2015-06-12 08:15:36 12895
原创 使用malloc在堆上创建二维数组
先回顾new在堆上分配内存,见我的博文点击打开链接 C/C++的数据类型判断的最后总结的:如果new后边的类型是非数组类型,那么返回的类型是这种类型的指针(最内层的指针,是其本质);如果new后边的类型是数组,那么返回的类型是数组退化为指针之后的类型。关于退化,见我的博文点击打开链接中关于C/C++赋值中的退化规则。malloc的返回值是void* 类型的泛型指针,需要强制类型转换为其它指针类
2015-06-11 19:36:04 4021
原创 QT项目笔记
最近在做基于QT的烟箱分类计数系统,一共四个串口,其中三个串口接收扫描头发送过来的条码数据,剩下一个串口发送确认信号(确认有烟箱,升降机中的托盘会触发扫描头发送数据)。四个串口开四个独立的线程读取数据,通过继承QThread类,在run() 函数中定义自己封装的串口类对象(封装QSerialPort类),然后在run()函数中调用exec()函数,启动线程的事件循环。借助Qt的信号槽机制,将串
2015-06-03 20:45:20 3157
tmux_for_git-bash.zip
2020-05-11
The Hacker’s Guide to Scaling Python
2018-05-25
Deep Learning with TensorFlow 第二版
2018-04-18
With Open AI, TensorFlow and Keras Using Python
2018-04-18
Discover the Mathematical Language of Data in Python
2018-04-18
Memory Dump Analysis Anthology, Volume 3 内存分析技术
2018-04-08
Memory Dump Analysis Anthology, Volume 5
2018-04-08
Memory Dump Analysis Anthology Volume 7
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人