我有segfaults!
今天是我第一次使用c ++。 我通常是一个Python程序员。 我不断收到segfaults,并将它隔离到注释行中。 (注释的那些在未注释时会导致段错误。)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#include "defaultfile.h"
int main()
{
ifstream mapin;
string map;
string s;
int i = 0;
while (i<=22){i++;top[i][0]="__";i++;};i=0;
while (i<=21){i++;frw[i][0]="/";i++;};i=0;
while (i<=21){i++;bck[i][0]="";i++;};i=0;
//while (i<=45){i++;spc[i][0]=" ";i++;};i=0;
//while (i<=112){i++;spc[i][1]="n";i++;};i=0;
while (i<=22){i++;cout<<top[i][1]<<endl;i++;};i=0;
while (i<=21){i++;cout<<frw[i][1]<<endl;i++;};i=0;
while (i<=21){i++;cout<<bck[i][1]<<endl;i++;};i=0;
//while (i<=45){i++;cout<<spc[i][1]<<endl;i++;};i=0;
...
}
标题是:
string top[23][3] =
{{"", "", ""},
...
{"", "", ""}};
string frw[22][3] =
{{"", "", ""},
...
{"", "", ""}};
string bck[22][3] =
{{"", "", ""},
...
{"", "", ""}};
string spc[46][3] =
{{"", "", ""},
...
{"", "", ""}};
编辑:谢谢。 我总是想念和花费一个小时试图寻找的愚蠢的东西。 我需要的只是别人来指出。
while (i<=112){i++;spc[i][1]="n";i++;};i=0;
您将spc定义为:
string spc[46][3]
您将spc
一直索引到112,但只有0-45对第一个索引有效。
数组基于0。 你在每个人上都写完了。 它撞上了SPC,因为它是最后一个。 在另一个你写入下一个的记忆。
澄清:你这样做while (i <= 45) { i++; spc[i] ...
while (i <= 45) { i++; spc[i] ...
现在,如果我是45,那么你将它增加到46,然后你访问超出边界的spc[46]
。 所有其他线路都一样。
此外,您只能初始化每个第二个字段 - 不确定这是否是有意的。
链接地址: http://www.djcxy.com/p/43885.html上一篇: I have segfaults!