为什么此代码会产生分段错误?

时间:2019-07-28 19:24:14

标签: c++ segmentation-fault sigsegv

我正在尝试编写可以解决Rubic立方体的C ++代码。我做了一个处理多维数据集的类(存储,旋转)。该类具有2个构造函数。一个创建一个已解决的多维数据集,另一个可以从consol输入中创建一个多维数据集。当它们都到达时,它们都会生成分段错误,然后Windows正在寻找问题的解决方案。我读到,如果指针出了问题,就会发生这种情况,但是我不会在引发错误的地方使用指针。

这是Cube类的标题:

#ifndef CUBE_H
#define CUBE_H
class Cube {
    char cube[6][8];
public:
    Cube();
    Cube(char state[6][8]);
    void turnCW(char side);
    void turnRCW(char side);
    void printCube();
private:
    void swap(char &a, char &b);
    void turnSide(char side);
};
#endif

这是构造函数的c ++文件:

char colors[] = {'w', 'g', 'r', 'b', 'y', 'o'};
Cube::Cube() {
    for (char i : colors) {
        for (char k = 0; k < 8; k++) {
            cube[i][k] = i; // the fault is thrown here
        }
    }
}

这是主要内容:

#include "cube.h"
int main() {
    Cube c;
    return 0;
}

0 个答案:

没有答案