首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

链表操作错误退出 百思不得其姐

2013-01-23 
求助 链表操作异常退出 百思不得其姐while (tp ! NULL) {if (memcmp(tp-data, str, slen) 0) {tp-nu

求助 链表操作异常退出 百思不得其姐
   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++
[解决办法]

引用
if (tp->next == NULL)break;//感觉这一行没有必要加上,但没有这一行就会导致程序异常退出,是在搞不明白.
 

在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; 

热点排行