好吧……我要抓狂了……当我把一个名为“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;
};
顺便说一句...函数调用是由一个孩子,虽然我不明白这怎么会导致一个问题。
4条答案
按热度按时间pxyaymoc1#
如果你在Linux上,试着运行valgrind。你只需要用
-g
(带gcc)编译,然后用valgrind
运行你的程序:与GCC解决方案不同,它会告诉您segfault何时发生,valgrind通常会告诉您第一次内存损坏发生的确切时间,因此您可以更接近问题的根源。
PS.它和“弗林特”押韵,而不是“找到”。
vs3odd8k2#
很可能,你正在解引用一个流氓指针。通过纯粹的猜测,你是否得到了这样的东西,也许:
问题可能是:
for (i=0; i<10; i++)
实际上可能有数百种其他原因,但由于我没有您的代码,这是我试图猜测最合理的错误;)
(* 自我提示:我为什么要这么做/我不是灵媒?
sf6xfgos3#
gorkyyrv4#
代码看起来很好,除了你一直在复制字符串的事实。
应该是
问题一定出在方法调用中。