我正在尝试将c-string传递给函数并打印出一个6x6表。但是我的代码一直在编译时出错。分段错误。我知道seg错误是当程序寻找不存在的东西时。即使经过大量研究,我也不确定如何解决这个问题或如何改变它。非常感谢任何建议。
这是我的代码:
#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;
}
}
答案 0 :(得分:3)
labs [6] [6]是一个包含6行的数组,第一行是[0],最后一行是[5],对于cols是相同的,所以在{<=6
更改为<6
{1}}。
fillarrays
答案 1 :(得分:2)
for(int row = 0; row<=6;row ++) {
for(int col=0; col<=6; col++) {
labs[row][col] = row;
}
}
仔细观察 - 这填充了一个7x7数组(行和列的索引0到6)。但是阵列只有6x6,所以你试图在数组的边界外写字。
这是一个相当常见的错误;将<=
更改为<
s。