为什么升华文本和VSCode不显示运行时错误?

时间:2020-08-23 06:08:37

标签: c++ visual-studio-code sublimetext3

例如,在下面的代码片段中,将n设为9,将数组a的元素设为{5,5,4,5,5,5,4,5,6}。 Sublime文本和Visual Studio代码将正确的输出显示为3,但是Leetcode在线ide显示的是“运行时错误:类型'int [k]'的索引8超出范围”。我想知道为什么崇高的文本和Visual Studio代码没有显示运行时错误,并且如果有一个显示运行时错误的ide /文本编辑器,请向我推荐。

    int k = n - 1;
    int temp[k];
    for (int i = 0 ; i < k ; i++)
    {
        temp[i] = (a[i] - a[i + 1]);
    }
    int res = INT_MIN;
    for (int i = 0 ; i < k ; )
    {
        int x = temp[i];
        int c = 0;
        while (x == temp[i])
        {
            i++;
            c++;
        }
        res = max(res, c + 1);
    }
    cout<<res;

1 个答案:

答案 0 :(得分:1)

int k = n - 1;
int temp[k];    // variable length array, must be either #define k <constant num>
                // or 'const int k'

C ++标准不支持可变长度数组(VLA)。 Sublime Text&VS Code根本不重要,但是编译器很重要。

您可能尚未启用编译器警告,因此看不到任何错误。您可以通过在编译选项中附加-pedantic标志来查看所有警告。