求助 链表操作异常退出 百思不得其姐
while (tp != NULL) {
if (memcmp(tp->data, str, slen) == 0) {
tp->number++;
return tp;
}
if(tp->next==NULL)break;//为解决异常退出而加入的判断
tp = tp->next;//如果next为NULL会直接退出程序.
}
编译环境 DEV C++ 4.9.9
gcc version 3.4.2 (mingw-special)
求助 c++ 链表 g++
[解决办法]
在while循环中,是没必要,但是在下面的语句看,很有必要。
sd *newp = new sd;
if (newp == NULL)return NULL;
tp->next = newp; // 到这里,如果没有那一句,tp就是空指针,导致程序异常memcpy(newp->data, (const char*) str, slen);
newp->data[slen] = 0;
newp->len = slen;
return newp;