在我的代码中添加新变量以及一些操作后,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
的值是 0
到 3
,包括在内,但是您这样声明数组:
float flx[3][4];
... 这意味着只有 0
、1
和 2
是 flx
的 first/major 维度的有效索引。因此,您在数组的边界之外写入,因此出现堆栈粉碎错误消息。
我编写了一个用于计算目的的代码。一切都很顺利,直到我在主代码的函数中添加了这些行。我读到的关于这个问题的大多数线程都有解决方案,涉及处理字符串的情况。 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
的值是 0
到 3
,包括在内,但是您这样声明数组:
float flx[3][4];
... 这意味着只有 0
、1
和 2
是 flx
的 first/major 维度的有效索引。因此,您在数组的边界之外写入,因此出现堆栈粉碎错误消息。