崖高人远
2016-06-15 10:07
采纳率: 81.8%
浏览 2.6k
已采纳

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

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条回答 默认 最新

  • threenewbee 2016-06-15 10:11
    已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • oyljerry 2016-06-15 14:25

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

    评论
    解决 无用
    打赏 举报
  • ZSGG_ACM 2016-06-15 17:06

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题