[英]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.