【发布时间】:2023-04-03 21:25:01
【问题描述】:
我真的不知道这里发生了什么,但是当我运行我的代码时,我在尝试比较两个字符串时遇到了一些疯狂的错误。
bool remove_entry(addlist& list, std::string fname, std::string lname){
bool more = true;
bool failed = false;
contact* traversal_ptr = entry;
contact* trailer = entry;
while (more && !failed){
if (traversal_ptr = NULL){
failed = true;
}
else if (traversal_ptr->last_name != lname || traversal_ptr->first_name != fname){
trailer = traversal_ptr;
traversal_ptr = traversal_ptr->next;
}
else {
trailer->next = traversal_ptr->next;
delete traversal_ptr;
}
}
return failed;
}
我在以下 xstring 块的返回行中遇到错误:
int compare(const _Myt& _Right) const _NOEXCEPT
{ // compare [0, _Mysize) with _Right
return (compare(0, this->_Mysize, _Right._Myptr(), _Right.size()));
}
我不知道为什么会这样。我知道放入的所有内容都是一个字符串。它甚至没有引发异常,所以我不知道该怎么做。看来这可能是我缺少的一些小东西。任何帮助将不胜感激。
【问题讨论】:
-
设置断点,调试
-
我确实设置了一个断点。那个 xstring 块是我走了多远,而且我对编码还很陌生,除了查看代码在哪里执行失败之外,我不太确定该怎么做。
-
检查调用堆栈
-
尝试将“traversal_ptr = NULL”更改为“traversal_ptr == NULL”,因为您将其设置为 NULL 而不是与 NULL 进行比较。
-
成功了!谢谢你!