【发布时间】:2011-08-16 22:20:11
【问题描述】:
好吧...我正在扯掉我的头发...为什么当我将一个名为“name”且内容为“joel”的字符串传递给时会出现分段错误
void person::setName(string newName)
{
personName = newName;
}
头文件:
class person {
public:
int getID();
string getName();
void setID(int newID);
void setName(string newName);
private:
int personID;
string personName;
};
顺便说一句...函数调用是由一个孩子调用的,虽然我不明白这会如何导致问题。
【问题讨论】:
-
另外...它在以前的迭代中运行没有错误...它只是不喜欢这个迭代...我会链接代码但是那里有一堆东西 X(
-
我不认为你的问题是那个功能。您可能想看看您是如何创建/访问正在使用的人员对象的。
-
您的代码示例没问题,段错误是在其他地方引起的。请使用调试器单步调试您的代码,以找到导致错误的代码行。
-
嗯,你是说那个字符串“正在调试的程序......”是那个变量的内容吗?很奇怪。你能告诉我们故障出在哪一行代码吗?使用 -g 构建程序(如果使用 GCC),然后在 GDB 中运行它。它将因错误而中断。如果您不知道自己在哪里,请输入
bt,它将显示函数调用堆栈。查找堆栈,直到找到一些代码——即出现错误的那一行。 -
@mgiuca:确切地说,这与症状相符。实际错误可能在其他地方。
标签: c++ signals segmentation-fault