当观看变量时,visual studio 2005崩溃了

时间:2014-07-10 00:24:16

标签: c++ visual-studio crash

在visual studio 2005调试模式中,当我看到这种变量时:

vector<vector<_variant_>>

具有特定内容,IDE将崩溃。 像这样:

#include <stdlib.h>
#include <vector>
#include <comutil.h>

#pragma comment(lib, "comsuppwd.lib")

using namespace std;

typedef vector<_variant_t> TABLE_ROW;
typedef vector<TABLE_ROW> MEMORY_TABLE;


int
main(int argc, char *argv[])
{
    MEMORY_TABLE data;

    TABLE_ROW row;
    row.push_back(_variant_t("abcdefg"));
    row.push_back(_variant_t("b"));
    row.push_back(_variant_t("c"));
    row.push_back(_variant_t("d"));
    row.push_back(_variant_t(5.1));
    row.push_back(_variant_t(6.2));
    row.push_back(_variant_t(7.4));
    row.push_back(_variant_t(8.5));
    row.push_back(_variant_t(9.7));
    row.push_back(_variant_t("1"));
    row.push_back(_variant_t(0));
    row.push_back(_variant_t(0));
    row.push_back(_variant_t(1));
    row.push_back(_variant_t("eeeeeee"));
    data.push_back(row);

    TABLE_ROW row2;
    row2.push_back(_variant_t(5.1));
    row2.push_back(_variant_t(6.2));
    row2.push_back(_variant_t(7.4));
    row2.push_back(_variant_t(8.5));
    row2.push_back(_variant_t(9.7));
    data.push_back(row2);



    printf( "hello, bug\n");
    system("pause");
    return 0;
}

添加断点
printf( "hello, bug\n");

然后开始调试,当它在断点处中断时,然后观察变量

data

然后IDE将崩溃。 Visual Studio 2010或更高版本工作正常。

我该如何解决?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

这可能是这个古老视觉工作室的一个错误。

新的编译器并不奢侈。 C ++语言正在发展。现代C ++功能令人兴奋,可以使您的代码更加简洁可靠。 Visual Studio 2005不支持任何这些功能。

如果您的计算机运行速度不够快(至少),我宁愿不使用IDE并投资现代编译器。例如,MinGW对C ++ 11有很好的支持。