我有一个结构:
typedef struct
{
char *ptr;
} A;
和一张地图
typedef std::map<std::wstring, A> myMap;
我在填充地图时使用 malloc 为 ptr 字段分配了内存。为了防止在清除地图时发生内存泄漏,我有以下代码(actualMap 是我必须清除的实际地图):
for (myMap::iterator iter = actualMap.begin(); iter != actualMap.end(); ++iter)
{
Free((iter->second).ptr);
}
actualMap.clear();
但是,当我正常启动应用程序时,在执行 Free 时出现异常。当我直接通过 VS2010 启动应用程序时,不会生成此异常。我错过了什么吗?
谢谢。