Allouer la mémoire pour une chaîne de caractères

Problème

Vous voulez connaître les différents moyens de stocker une chaîne de caractères dans un programme.

Solution

Les moyens les plus utilisés consistent en la déclaration d’une chaîne statique, l’utilisation de strdup(), et sinon, les fonctions d’allocation de mémoire et celles de copie de chaînes de caractères.

Discussion

Tout d’abord, distinguons les chaînes de caractères statiques des chaînes de caractères dynamiques. Une chaîne de caractères statique voit son espace alloué à l’endroit où elle est déclarée (sauf pour les chaînes déclarées avec le mot-clé static qui est explicité plus loin). Sa taille est donc fixée une bonne fois pour toutes lors de la compilation du programme et il n’est plus possible de modifier cette taille par la suite. À l’inverse, l’espace d’une chaîne de caractères dynamique n’est pas allouée lors de la compilation mais à l’exécution du programme. Nous la déclarons comme un pointeur sur une variable de type char et l’utilisons comme un tableau de char après avoir nous-même alloué la mémoire avec une fonction de la famille de malloc().

Une variable déclarée avec le mot-clé static signifie qu’elle est allouée dans...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Introduction
Suivant
Copier une chaîne de caractères