Итак, у меня ошибка сегментации с этим фрагментом кода, и я не знаю почему. Я думал, что это связано с тем, что я использовал NULL неправильно (?), но я не думаю, что это так. .Я попытался добавить больше сообщений об ошибках, чтобы посмотреть, смогу ли я пойти куда-нибудь с этим, но я все еще получаю ту же ошибку /:
char* lookup(Dictionary D, char* k){
Node N = D->head;
if(D == NULL){
fprintf(stderr, "Error: calling lookup() on null Dictionary");
exit(EXIT_FAILURE);
}
while(N!=NULL){
if(strcmp(N->key,k)==0){
return N->value;
break;
}
N = N->next;
}
return NULL;
}
void insert(Dictionary D, char* k, char* v){
// Node N = D->head;
if(D==NULL){
fprintf(stderr, "Error: inserting on a null Dictionary\n");
exit(EXIT_FAILURE);
}
if(lookup(D,k)!=NULL){
fprintf(stderr, "already existing\n");
exit(EXIT_FAILURE);
}
else{
if(D->numItems==0){
Node N;
N = newNode(k,v);
D->head = N;
D->numItems++;
}
//if there is only a head node, add node after it
else{
Node S = D->head;
while(S!=NULL) {
S = S->next;
}
S->next = newNode(k,v);
}
D->numItems++;
}
}