dongguxidu1
崖高人远
采纳率81.8%
2016-06-15 10:07 阅读 2.5k
已采纳

C++11 vector使用初始化列表会造成内存泄漏

1
std::vector<std::vector<std::string>> itemText =  //初始化列表会造成内存泄漏
{
    { "1" },
    { "2" },
    { "3" },
    { "4" },
    { "5" },
    { "6" },
    { "7" },
    { "8" },
    { "9" },
    { "0" }
};
上面的代码会造成内存泄漏,Win7+VS2013

换了下面的代码就没问题了
std::vector<std::string> vRow1 = { "1" };
    std::vector<std::string> vRow2 = { "2" };
    std::vector<std::string> vRow3 = { "3" };
    std::vector<std::string> vRow4 = { "4" };
    std::vector<std::string> vRow5 = { "5" };
    std::vector<std::string> vRow6 = { "6" };
    std::vector<std::string> vRow7 = { "7" };
    std::vector<std::string> vRow8 = { "8" };
    std::vector<std::string> vRow9 = { "9" };
    std::vector<std::string> vRow10 = { "0" };

    TreeItemsText itemText = { vRow1, vRow2, vRow3, vRow4, vRow5, vRow6, vRow7, vRow8, vRow9, vRow10 };
    这是为什么?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2016-06-15 10:11

    你是怎么判断有内存泄漏的?用的工具么?一些工具判断不准确,它们会把在堆上没有发生回收的数据都当成“泄漏”。

    点赞 评论 复制链接分享
  • ZSGG_ACM ZSGG_ACM 2016-06-15 17:06

    怎么会内存泄露呢! 感觉这不太可信

    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 2016-06-15 14:25

    这应该是编译器bug 你用vs2015试试

    点赞 评论 复制链接分享

相关推荐