Я пытаюсь создать программу на языке C со связанным списком, которая использует рекурсию для подсчета общего количества узлов связанного списка. Тем не менее, я получаю эту ошибку:
passing argument 1 of 'count' from incompatible pointer type [-Wincompatible-pointer-types]|
Может кто-нибудь объяснить мне, почему это происходит и как это исправить?
Это узел связанного списка без рекурсии. Работает без ошибок и возвращает возвращаемое мне значение.
int count(list_t *list){
node_t *curr = list->head;
int length=0;
while(curr != NULL){
length++;
curr = curr->next;
}
return(length);
}
И этот рекурсивен, но я получаю ошибку "'count' from несовместимый указатель".
int count(list_t *list){
node_t *curr = list->currptr;
int length=0;
if(curr == NULL){
return(0);
}
return(1 + count(curr->next));
}
Это структура моего связного списка
typedef struct {
int yyyy, mm,dd;
} date_t;
typedef struct {
double balance;
} acc_balance;
typedef struct node node_t;
struct node{
char *acc_no, *name, *lastname;
date_t date;
acc_balance acc_balance;
node_t *next;
};
typedef struct {
node_t *head;
node_t *foot;
node_t *currptr;
} list_t;
Вывод должен быть 8, но программа завершается с:
Process returned -1073741819 (0xC0000005) execution time : 5.093 s
Я все еще новичок в StackOverflow. Мои извинения, если я сказал что-то не так.