使用cstrings的C++分段故障
C++ Segmentation fault using cstrings
我正试图将c字符串传递到一个函数中,并打印出一个表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;
}
}
labs[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。
相关文章:
- 分段故障(堆芯转储)矢量
- 数组的指针从不分段故障
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- 分段故障说明
- 分段故障(核心转储)-不知道为什么
- 分段故障线程
- hiredis SET遇到分段故障
- 分段故障,合并排序算法
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 到达主C++之前分段故障
- 分段故障核心使用 IF流转储
- 使用向量的移动键盘排列(分段故障)
- 在二进制树插入和遍历期间,我得到了分段故障
- 分段故障在类之间返回整数
- C++分段故障BST