内存泄露啊请大家帮小弟我看一上,好像是cstring的…
内存泄露啊,请大家帮我看一下,好像是cstring的……
这样会有内存泄露??
说明:m_iStudentNum 是我的一个总的记录数。m_sStudentCode 是学生编号。pApp是程序应用 类指针。m_sStudentInfo 是一个3维数组,用的cstring定义的(不知道这样有什么我不知道的潜在危害不)。[X][1]是学生姓名,[x][2]是班级
我每得到一条记录呢,都会去循环匹配一下我的m_iStudentNum 条记录。然后去处理。
我用这个:_CrtDumpMemoryLeaks()去检测,结果发现有内存泄露,而且数据竟然是包括我的学生的全部编号……
因为我的程序只有这一段是去匹配我的学生库了,所以我断定应该是在这有内存泄露了。可是我不知道为什么啊,实再头晕!!!
//加了下边,这样也不行
UpdateData(FALSE);
studentname = "";//防止内存泄露??
studentclass = "";//防止内存泄露??
studentname.Empty();//防止内存泄露??
studentclass.Empty();//防止内存泄露??
////////////////////////////////////////////
so why ??
------解决方案--------------------
应该是[o+1]的用法导致数组越界了,逻辑上应该用[o]
------解决方案--------------------
竟然用三维数组,既麻烦又不好用,建议改成struct,所有单个学生的数据放在一个struct里,然后只生成一个一维数组
for( int o = 0 ; o < m_iStudentNum ; o++)
{
if( ! strcmp(pApp->m_sStudentInfo[o+1][0],m_sStudentCode) )
{
//说明检测出来的考号和学生信息数组中的有匹配的
studentname=pApp->m_sStudentInfo[o+1][1];
studentclass=pApp->m_sStudentInfo[o+1][2];
break;
}
else
{
studentname = "";
studentclass = "";
}
}
这样会有内存泄露??
说明:m_iStudentNum 是我的一个总的记录数。m_sStudentCode 是学生编号。pApp是程序应用 类指针。m_sStudentInfo 是一个3维数组,用的cstring定义的(不知道这样有什么我不知道的潜在危害不)。[X][1]是学生姓名,[x][2]是班级
我每得到一条记录呢,都会去循环匹配一下我的m_iStudentNum 条记录。然后去处理。
我用这个:_CrtDumpMemoryLeaks()去检测,结果发现有内存泄露,而且数据竟然是包括我的学生的全部编号……
因为我的程序只有这一段是去匹配我的学生库了,所以我断定应该是在这有内存泄露了。可是我不知道为什么啊,实再头晕!!!
//加了下边,这样也不行
UpdateData(FALSE);
studentname = "";//防止内存泄露??
studentclass = "";//防止内存泄露??
studentname.Empty();//防止内存泄露??
studentclass.Empty();//防止内存泄露??
////////////////////////////////////////////
so why ??
------解决方案--------------------
应该是[o+1]的用法导致数组越界了,逻辑上应该用[o]
------解决方案--------------------
竟然用三维数组,既麻烦又不好用,建议改成struct,所有单个学生的数据放在一个struct里,然后只生成一个一维数组