Sto provando da diverso tempo a concatenare le seguenti liste, ma senza successo qualcuno mi potrebbe dare qualche consiglio
struct N{
int NO[2];
char NOME[6];
char LETTERA[1];
struct N*next;
}N3={{3,5},"azoto","N"};
struct C{
int NO[2];
char NOME[9];
char LETTERA[1];
struct C *next;
}N2={{2,4},"carbonio","C",&N3};
struct H{
int NO[2];
char NOME[11];
char LETTERA[1];
struct C *next;
}N1={{1,0},"idrogeno","H",&N2};
Riesco a scorrerci dentro, ma se cambio l'indice dell'array NO[] (esempio: imposto l'indice di NO di H a 1 e scrivo N1={1,"idrogeno","H",&N2} ) il programma smette di funzionare e non mi restituisce più NOME. C'è qualche modo per evitare ciò o un modo migliore per concatenare queste strutture?
Scorro nel programma col seguente codice:
struct H *lista=&N1;
N3.next=0;
while(lista!=(struct N*)0){
printf("%s",lista->NOME);
lista=lista->next;