在我的代码中添加新变量以及一些操作后,Stack Smashing 检测到 C++

Stack Smashing Detected C++ after I added new variables in my code along with some operations

我编写了一个用于计算目的的代码。一切都很顺利,直到我在主代码的函数中添加了这些行。我读到的关于这个问题的大多数线程都有解决方案,涉及处理字符串的情况。 None 其中与我正在处理的问题关系更密切。 在主程序中添加的代码是:

float flx[3][4];

for (int a0 = 0; a0 < 4; a0++) {
    for (int b0 = 0; b0 < 3; b0++) {
        cout << "fluz!!!!";
        flx[a0][b0] = phi1[a0][b0] - phi2[a0][b0];
        cout << flx[a0][b0] << " ";
    }
    cout << "\n";
}

代码在执行这部分后立即终止,因此无法继续进一步的操作。

请帮忙。 谢谢

for (int a0=0;a0<4;a0++){
   for (int b0=0;b0<3;b0++){
      flx[a0][b0] = [...];

请注意,在外循环中,a0 的值是 03,包括在内,但是您这样声明数组:

float flx[3][4];

... 这意味着只有 012flx 的 first/major 维度的有效索引。因此,您在数组的边界之外写入,因此出现堆栈粉碎错误消息。