clang (con l'address sanitizer attivo) si lamenta che
- Codice:
> clang -std=c17 -O1 -g -fsanitize=address -fno-omit-frame-pointer .\matematicamente.c
.\matematicamente.c:49:28: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
tmp_prev->next = t; // == tmp_next = t
^ ~
.\matematicamente.c:50:21: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
t->prev = tmp_next;
^ ~~~~~~~~
.\matematicamente.c:58:21: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
t->next = nodo1;
^ ~~~~~
.\matematicamente.c:59:21: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
t->prev = pl->top;
^ ~~~~~~~
.\matematicamente.c:60:25: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
nodo1->prev = t;
^ ~
.\matematicamente.c:61:27: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
pl->top->next = t;
^ ~
.\matematicamente.c:66:21: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
t->prev = tmp_prev;
^ ~~~~~~~~
.\matematicamente.c:67:21: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
t->next = tmp_next;
^ ~~~~~~~~
.\matematicamente.c:68:28: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
tmp_next->prev = t;
^ ~
.\matematicamente.c:69:28: warning: incompatible pointer types assigning to 'struct TVS *' from 'TVS *' [-Wincompatible-pointer-types]
tmp_prev->next = t;
^ ~
.\matematicamente.c:90:15: warning: incompatible pointer types assigning to 'TVS *' from 'struct TVS *' [-Wincompatible-pointer-types]
serie = serie->next;
^ ~~~~~~~~~~~
Si lamenta anche di strcpy, ma quello è basato sul fatto che ho compilato su windows son la libreria di Microsoft.
Nota che il mio editor chiama
clang-format
quando salvo, quindi le righe possono non essere le stesse.
Penso che il problema è che
TVS
è un typedef di una struct che non si chiama
TVS
(è anonima). Puoi risolvere dandole un nome.
- Codice:
typedef struct TVS_s
{
char title[ DIM_TITLE ];
char genre[ DIM_GENRE ];
int num_episodes;
struct TVS_s* prev;
struct TVS_s* next;
} TVS;
Detto questo, mi stupirebbe se creasse molti problemi.
Non ho controllato tutto, ma ho qualche dubbio sul funzionamento dell'inserimento dell'elemento. Ma ci devo ragionare su.