tea*_*ter 0 c c++ io file segmentation-fault
我正在研究这个功能.该main
用我在文件我没有问题/ O,它连接罚款,关闭,这些文件都还好了.但是,我在阅读结束时遇到了分段错误.我已经尝试打印出来进行测试,错误是读取最后一行.它完成读取字符串的最后一行a
,然后x
,然后也in.good()
变为假.我已经尝试重置in.clear()
,a="";
如果in.good
变为false 则设置字符串.什么都行不通.
read(istream& in){
string a;
int x;
in>>a;
while( in.good() ){
in>>x;
char *ch;
strcpy( ch, a.c_str() );
Word cwd(ch);
anObject.add(cwd,x);
}
}
Run Code Online (Sandbox Code Playgroud)
你看到一个段错误,因为你没有为其分配空间ch
,然后你试图在它上面复制一个字符串.ch
是一个不属于您的未初始化的内存地址.
您需要为字符串分配空间:
char *ch = new[(MAX_SIZE + 1) * sizeof(char)];
Run Code Online (Sandbox Code Playgroud)
但为什么你需要一个char *
呢?请注意,如果必须有C字符串,则可以随时传递a
并使用a.c_str()
.我不确定是什么Word
,或者它是否需要它自己的字符串副本,但你可以使用:Word cwd(a.c_str())
?
归档时间: |
|
查看次数: |
1424 次 |
最近记录: |