我有这个代码,它是处理数据库(作为链表)的库的一部分:
char *db_getVal(char *key, Node *database) {
while(database != NULL){
if(strcmp(key, database->key) == 0){
return database->value;
}else{
database = database->next;
}
}
return NULL;
}
当我使用数据库中存在的密钥时,它工作正常,但是当我输入一个没有的密钥时,我会遇到分段错误。那是为什么?
答案 0 :(得分:1)
确保最后一个元素的next
成员设置为NULL
。如果未明确设置,则可能是某些垃圾值不是NULL
但是如果访问则会导致程序收到分段错误。
答案 1 :(得分:0)
生成数据库链接时,请确保其最后一项database-> next设置为null