C++ 我的代码-布尔真值表出错

C++ 我的代码-布尔真值表出错,c++,truthtable,C++,Truthtable,我目前正在开发一个程序,它可以打印5个变量的真值表。我使用的是二维数组。我的代码目前生成该表,但表示该表已损坏,“变量”表周围的堆栈已损坏。有帮助吗 #include <iostream> using namespace std; int main() { bool table[5][32]; for (int i = 0; i < 32; i++) { for (int j = 0; j < 5; j++) {

我目前正在开发一个程序,它可以打印5个变量的真值表。我使用的是二维数组。我的代码目前生成该表,但表示该表已损坏,“变量”表周围的堆栈已损坏。有帮助吗

#include <iostream>
using namespace std;

int main() {
    bool table[5][32];

    for (int i = 0; i < 32; i++) {
        for (int j = 0; j < 5; j++) {
            table[i][j] = ((i >> j)& 1);
        }
    }

    for (int i = 0; i < 32; i++) {
        for (int j = 0; j < 5; j++) {
            cout << table[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}
#包括
使用名称空间std;
int main(){
bool表[5][32];
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){
表[i][j]=((i>>j)和1);
}
}
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){

cout索引错误。只有
表[0]
表[4]
可用,因此访问
表[5]
表[31]
是非法的

试试这个:

#include <iostream>
using namespace std;

int main() {
    bool table[32][5]; // swap 32 and 5

    for (int i = 0; i < 32; i++) {
        for (int j = 0; j < 5; j++) {
            table[i][j] = ((i >> j)& 1);
        }
    }

    for (int i = 0; i < 32; i++) {
        for (int j = 0; j < 5; j++) {
            cout << table[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}
#包括
使用名称空间std;
int main(){
布尔表[32][5];//交换32和5
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){
表[i][j]=((i>>j)和1);
}
}
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){

cout试图从数组中读取超出范围的值

如果需要
5x32
矩阵,请使用以下代码:

    for (int i = 0; i < 5; i++) {          // 32-> 5
        for (int j = 0; j < 32; j++) {     // 5->32
    bool table[32][5];        //it was table[5][32];

因此,交换这些值只是将其与我分配变量并打印的for循环对齐?是的,您在for循环中添加了最多32个
i
变量,但第一个数组只有5个单元格。