最近帮一个同事调试代码,遇到一个奇怪的double free崩溃问题,通过gdb定位到问题函数,发现问题出现在一个局部变量的析构函数中,最初没有关注到返回值问题,花了很多时间分析业务代码,结果找不出任何问题; 后来注意到返回值问题,...
Linux环境下C/C++开发和可执行程序运行路径
开发C++程序, 路径设置一直是一个容易出错的关键点。很多人入门C++很久,对于程序开发和运行相关路径还是云里雾里。这里做一个简单的梳理。因为现在C++开发一般都是CMake了,所以本文都以CMake举例。 C++开发中需要关注的...
C/C++内置类型,数值常量和隐式转换
写这篇,一是想巩固下基础知识;二是发觉网上很多写的也是错漏较多,模糊了去查了看需要很多时间去分辨对错;故自己总结下,自觉应该不会出错吧(错了欢迎指出,我再纠正。)- -||| 一、C/C++内置类型长度我们知道C++内置类型有bo...
C++变量初始化详解(C++98和C++11)
在C++11以前,C++的初始化基本上是在C的初始化方式基础上加上了类和类成员的初始化,有很多不太方便的地方。C++11一口气修改了大多数问题,但是也让初始化问题变得更复杂,所以我觉得有必要梳理一下。 C++98的变量初始化C++...
C++ union介绍
union的定义和特性C++union是继承自C的复合类型,和C语言中的union定义保持一致。union具有以下特点: union中所有成员共享同一段内存,所有成员起始地址相同; union的长度由最大长度的成员与类型长度最大的...
C++ 默认构造函数
C++默认构造函数是可以不用实参进行调用的构造函数,它包括了以下两种情况: 没有带明显形参的构造函数。 提供了默认实参的构造函数。 我们知道,在类设计者没有提供默认构造函数的情况下,编译器会帮我们自动合成默认构造函数。但是这里...
C++类型:内置类型,复合类型和类类型
如标题所言,C++类型基本分为三类:内置类型,复合类型和类类型。 内置类型:编译器内置的基本类型,如int, char, float, double, bool等; 复合类型:根据其它类型定义的类型,主要有这么几类:数组,字符串,指...
C++基础之字节对齐
本文转自C语言字节对齐问题详解, 做了一定的删减和修改。 1. 什么是字节对齐 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的...