Sasume
:
Juste un truc : ce n'est peut-être pas hyper important de parler de l'instruction goto.
Si! C'est une des instructions les plus importantes!
Et je ne suis pas sûr que les raisons que tu donnes pour préférer l'utilisation de boucles à celle de goto soient correctes.
En effet, "On a tendance à utiliser goto de moins en moins car il est plus efficace d'utiliser d'autres boucles comme if ou while." est doûteux, GCC peut convertir dans les 2 sens. Il y a des optimisations qui travaillent seulement sur des boucles codées telles quelles, mais ils sont en train de les remplacer par des optimisations plus flexibles qui peuvent reconnaître des structures de boucles. Et elles ne s'appliquent pas toujours. L'exemple donné m'a l'air clairement faux.
Testcase:
label:
clrscr();
if(ngetchx())
goto label;
-->
.L2:
jbsr clrscr
#APP
.xdef __ref_all___set_file_in_use_bit
#NO_APP
.word _F_LINE+0x51
tst.w %d0
jbne .L2
do
clrscr();
while(ngetchx());
-->
.L2:
jbsr clrscr
#APP
.xdef __ref_all___set_file_in_use_bit
#NO_APP
.word _F_LINE+0x51
tst.w %d0
jbne .L2
Identique instruction par instruction.
Et on peut souvent coder quelque chose de plus efficace en utilisant
goto.
Sasume
:
Il est très conseillé d'assigner toujours la valeur NULL à un pointeur lors de sa déclaration, ce qui permet d'éviter les "pointeurs fous" qui pointent n'importe où et qui peuvent faire des dégats.
Je pense que tu devrais soit donner plus de précisions, soit ne pas en parler du tout, parce que là tu en parles vaguement sans vraiment expliquer le pourquoi de la chose.
Et puis les pointeurs
NULL ne sont pas forcément mieux sans MMU. (Bon, il y a l'AI7, mais...)
II) Chaîne de caractères avec liste de char
Il suffit de déclarer une liste de char comme vu aux chapitres précédent et de faire pointer un pointeur vers un char vers nomvar[0].
Je n'ai rien compris 
Moi si, mais c'est parce que j'ai déjà une idée de ce qu'il veut dire. Un débutant ne comprendra pas, en effet.