首页 > 解决方案 > 在我的代码中添加新变量以及一些操作后,堆栈粉碎检测到 C++

问题描述

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

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";
}

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

请帮忙。谢谢

标签: c++stack-smash

解决方案


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

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

float flx[3][4];

...这意味着只有0, 1, 和2是 的第一个/主要维度的有效索引flx。因此,您在数组范围之外写入,因此会出现堆栈粉碎错误消息。


推荐阅读