例如,在下面的代码片段中,将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;
答案 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
标志来查看所有警告。