小编Chi*_*yMc的帖子

由于#pragma pack错误导致内存损坏 - std map损坏 - 插入时崩溃

我有一个项目,我正在与std地图有一些奇怪的行为.

我定义了自己的typedef映射,它将字符串映射到自定义类型的指针.在我将第一对添加到地图后,应用程序在我超出地图的任何时候崩溃了.

在经历了很多混乱之后,我将地图更改为a并将其移动到我的应用程序中的第一个调用,它仍然崩溃.我不知道会发生什么.任何帮助,将不胜感激.

这是目前崩溃的代码.

LoggerPtr syslogger(Logger::getLogger("CISInterface"));

int main(int argc, char *argv[])
{
    typedef std::map<string, string> MyMapDef;
    MyMapDef tmpString;
    tmpString.insert(MyMapDef::value_type("0000", "d"));
    tmpString.insert(MyMapDef::value_type("1111", "d")); //Crashes here.
    tmpString.insert(MyMapDef::value_type("2222", "d"));

//  std::string configFile;
//  int c;
//  if(argc < 2)
//  {
//      //Must have c option
//      std::cout << "Usage -c configFileName" << std::endl;
//      exit(EXIT_FAILURE);
//  }
//Rest of main commented out. 
...
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪 -

CISInterface Debug [C/C++ Application]  
    gdb/mi (10/31/12 6:02 PM) (Suspended)   
        Thread [1] (Suspended: Signal 'SIGSEGV' received. Description: Segmentation …
Run Code Online (Sandbox Code Playgroud)

c++ crash stl

6
推荐指数
1
解决办法
1616
查看次数

标签 统计

c++ ×1

crash ×1

stl ×1