分割故障,不确定原因
Segmentation fault, not sure of orgins
我正在尝试编写一个程序,读取输入,然后反转字符串。所以我可能输入"racecars"它应该会反变成"sracecar"。我不知道为什么我得到一个分割错误。我的调试器也不清楚我的段错误在哪里。我在vim中使用gdb调试器。
我怎样才能使我的程序在转换函数中反向输入呢?
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string turnaround(string &input);
int main(){
cout << "enter some string to reverso" << endl;
string input;
getline(cin,input);
turnaround(input);
//cout << "your input is " << input << endl;
return 0;
}
string turnaround (string & input){
input = string(input.rbegin(), input.rend());
}
您在周转中创建的新反向字符串一旦离开周转范围就不再可用。因此,您的输入指向不再存在的对象,这就是区段错误的原因。
试试下面的方法:
string turnaround(const string& input)
{
return string(input.rbegin(),input.rend());
}
相关文章:
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 不确定如何装饰我的C++库代码以在 C 中使用
- C++功能泄漏内存,我是C++新手,不确定如何解决
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- 为什么以下代码是不确定的?
- 编译错误:"lvalue required as left operand of assignment" 不确定原因
- 误用指针会产生分段错误。我仍然不确定如何纠正它
- 我不确定为什么代码没有运行,它在编译时抛出错误,说它无法找到 PrintArray()
- 不确定出了什么问题(字符串输入)
- C++睡眠时间不确定
- 在C++中做一个场景问题,我不确定如何处理布尔和if循环
- 代码输出随机符号,我不确定出了什么问题
- 可变值变化,不确定原因
- 有没有办法让C++从 cin 中接收不确定数量的字符串?
- 尝试一次将单个字符读取到大小不确定的数组中
- 我不确定如何引用此神经网络训练方法中的权重
- 函数参数:不确定排序还是未排序?
- 不确定分割故障在哪里
- 分割故障,不确定原因