打印我的字符串阵列时,会遇到细分错误
Getting a segmentation error when printing my array of strings
你好所有c noob在这里,对于我在C 中的作业,我必须创建一个程序,该程序输入5个城市,并通过使用数组和分开功能将用户选择按顺序打印和反向顺序。作业要求您使用所有这些功能进行操作。该程序运行良好,直到我输入O或R进行反向顺序。我有一个细分错误。我想我正在不正确地打印或通过字符串。
这是我对数组函数的声明
void displayInOrder (string o[5]);
现在,这是我使用可执行代码的功能。
void displayInOrder (string o[5])
{
cout << "Here are the cities in order: " << endl;
cout << o[0] << " " << o[1] << " " << o[2] << " " << o[3] << " " << o[4]
<< endl; //the error seems to lie somewhere in here and the same
//in the reverse function
}
现在在主机上,我正在称呼这样的函数。
displayInOrder (&cities[5]);
我认为我要么将功能错误地称为错误,要么将其宣布错误,要么打印错误。自从我在C 中编程以来已经有一段时间了,我有点菜鸟。感谢任何人必须提供的任何帮助。
displayInOrder()
函数期望指向整个数组的指针。相反,您将指针传递给cities[5]
。这有两个问题:
- 这是指向特定元素的指针,而不是整个数组。
- 数组的最后一个元素是
cities[4]
,因此您要在数组范围外访问。
您应该以这种方式调用功能:
displayInOrder(cities);
无需使用&
,当用作函数参数时,数组变量会自动腐烂到指针。
相关文章:
- 编译包含字符串的代码时遇到问题
- 遇到新行时,有没有办法停止istream_iterator
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 在 for 循环中查找问题时遇到困难
- 创建结构的数组时遇到分段错误
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 为什么我遇到分段错误?
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- 为什么我在尝试模板时遇到视觉工作室C++错误
- 如何从文本文件中读取数值,直到遇到字符类型?
- 从其他类访问类时遇到问题
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 打印问题.我在数组中打印值时遇到一些问题
- 使用静态成员声明类时遇到问题
- 打印我的字符串阵列时,会遇到细分错误
- 当我编译并即将推动元素时,我会遇到细分错误
- 为什么在C 中调用模板超载运算符时,我会遇到细分故障
- 为什么我会遇到细分错误?将输出作为数字而不是字符串的原因是什么?