繁体   English   中英

使用cstrings的C ++分段错误

[英]C++ Segmentation fault using cstrings

我正在尝试将C字符串传递给函数并打印出6x6的表格。 但是我的代码不断编译并出现错误。 分段错误。 我知道段错误是程序寻找不存在的错误。 即使经过大量研究,我也不确定如何解决此问题或如何更改此问题。 任何建议将不胜感激。

这是我的代码:

#include <iostream>

using namespace std;

void fillarrays(int labs[][6]);
void printarrays(int labs[][6]);

int main()
{

    int labs[6][6];

    fillarrays(labs);
    printarrays(labs);

    return 0;
}

void fillarrays(int labs[][6])
{

    for(int row = 0; row<=6; row ++)
    {
        for(int col=0; col<=6; col++)
        {
            labs[row][col] = row;
        }
    }
}
void printarrays(int labs[][6])
{

    cout << "Labs: " << '\t' << '\t' << endl;;
    for(int rows=0 ; rows<6; rows++)
    {
        for(int cols=0; cols<6; cols++)
        {
            cout << '\t' << labs[rows][cols] << " ";
        }
        cout << endl;
    }
}

labs [6] [6]是一个有6行的数组,第一个是[0],最后一个是[5],cols相同,因此在fillarrays <=6更改为<6

for(int row = 0; row<6;row ++) {
    for(int col=0; col<6; col++) {
        labs[row][col] = row;
    }
}   
for(int row = 0; row<=6;row ++) {
    for(int col=0; col<=6; col++) {
        labs[row][col] = row;
    }
}   

在此处仔细查看-填充7x7数组(行和列的索引从0到6)。 但是数组只有6x6,因此您试图在数组的边界之外进行写操作。

这是一个相当普遍的错误; <= s更改为< s。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM