fal*_*ick 8 c++ signals segmentation-fault
好的...我正在把我的头发撕掉......当我传递一个名为"name"的字符串,内容为"joel"时,为什么我会出现分段错误
void person::setName(string newName)
{
personName = newName;
}
Run Code Online (Sandbox Code Playgroud)
头文件:
class person {
public:
int getID();
string getName();
void setID(int newID);
void setName(string newName);
private:
int personID;
string personName;
};
Run Code Online (Sandbox Code Playgroud)
顺便说一句...函数调用是由一个孩子,虽然我不知道这可能会导致一个问题.
mgi*_*uca 18
如果您使用的是Linux,请尝试运行valgrind.你只需编译-g(使用gcc),然后valgrind在前面运行你的程序:
$ valgrind myprogram
Run Code Online (Sandbox Code Playgroud)
与GCC解决方案(告诉您何时发生段错误)不同,valgrind通常会告诉您第一次发生内存损坏的确切时间,因此您可以更接近其来源捕获问题.
PS.它与"燧石"押韵,而不是"发现".
您可能正在取消引用流氓指针。纯粹的猜测,你是否得到过这样的东西,也许:
Person persons[10];
for (i=1; i<=10; i++)
persons[i].setName("joel");
Run Code Online (Sandbox Code Playgroud)
问题可能是:
for (i=0; i<10; i++)实际上可能有数百个其他原因,但由于我没有你的代码,这是我尝试猜测最可能的错误;)
(自我提醒:我为什么要这样做/我没有通灵能力?)
| 归档时间: |
|
| 查看次数: |
40055 次 |
| 最近记录: |