Nous étudions ici le C ansi , c'est à dire le std c89! (de 1989)
Il faut déjà savoir allouer statique avant de faire du dynamique.
char chaine[100]; /* statique */
ici on dispose de 100 octets en mémoire (RAM) défini depuis la compilation du programme.
chaine[0] suivi de chaine[1] ... jusqu'a chaine[99]
ce qui fait bien un total de 100 char (octet)
Parfois nous avons besoin de générer des variable pendant l’exécution du programme et la on parlera d'allocation dynamique
pour ce faire on procédera comme cela:
char* chaine;
chaine=malloc ( 100 * sizeof(char));
...
free(chaine); /* si on ne s'en sert plus */
chaine[0] suivi de chaine[1] ... jusqu'a chaine[99]
ce qui fait bien un total de 100 char (octet)
A la différence que ici c'est bien attribué pendant l’exécution
int nombre_octet=1000
char* chaine;
chaine=malloc ( nombre_octet * sizeof(char));
...
free(chaine);
il est a noté que si le pointeur retourné est égal a NULL , c'est que l'allocation a échouée. Et il est préférable de prévenir l'utilisateur, et arrêter le programme.