/*2
@brief 杆塔信息结构3
*/4
typedef struct _TOWER_INFO5
{6
string
strLineNo; ///< 线路号 7
string
strTowerNo; ///< 杆塔号8
string
strTowerType; ///< 杆塔类型9
double
dDangDistance; ///< 档距10
double
dHCHeight; ///< 呼称高11
double
dLongitude; ///< 经度12
double
dLatitude; ///< 纬度13
double
dAltitude; ///< 海拔高度14
double
dLineCorners; ///< 线路转角 15
long
lCornerDirection; ///< 左转还是右转: 0不转, 1左转, 2右转16
vector<INSULATOR_INFO::CENTER_POINT_INFO> vecInsulatorCenterPointInfo; ///< 杆塔所有绝缘子中心点信息17
_TOWER_INFO() { memset(this, 0, sizeof(_TOWER_INFO)); } //该行代码可能会引起string内存泄露18

19
}TOWER_INFO,*PTOWER_INFO;
......2 TOWER_INFO cur_tower_center_info;
3
cur_tower_center_info.strLineNo = sheetLine->Cell(i, 2)->GetText(); //调度码4
cur_tower_center_info.strTowerNo = sheetLine->Cell(i, 7)->GetText(); //杆塔号5
cur_tower_center_info.strTowerType = sheetLine->Cell(i, 8)->GetText(); //杆塔类型6 ......
Detected memory leaks!2
Dumping objects ->3
{235250} normal block at 0x01774A60, 16 bytes long.4
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 5
{235237} normal block at 0x01774CB0, 16 bytes long.6
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 7
{235234} normal block at 0x01774A10, 16 bytes long.8
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 9
{235184} normal block at 0x01774200, 16 bytes long.10
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 11
{235171} normal block at 0x01774450, 16 bytes long.12
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 13
{235168} normal block at 0x017741B0, 16 bytes long.14
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 15
{235118} normal block at 0x017739A0, 16 bytes long.16
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 17
{235105} normal block at 0x01773BF0, 16 bytes long.18
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 19

..从该泄露问题的分析解决过程中,总结得到规律:不要轻易零初始化string, vector等stl标准容器及具有动态内存管理的类。
233



被折叠的 条评论
为什么被折叠?



