L'essentiel du langage C

Démarrer avec l'allocation mémoire dynamique

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez vous intéresser à la manière d'utiliser l'allocation mémoire dynamique dans votre programme d'application.
05:33

Transcription

Je vais vous parler donc de l'allocation dynamique de mémoire. Pour cela d'abord, je vais avoir besoin d'une bibliothèque supplémentaire, qui sera stirng.h, qui va me permettre en fait, d'utiliser la fonction strcopy. Donc je vais déclarer un pointeur de type char et que je vais nommer de façon explicite chaine de caractères. Je vais donc forcément ici mettre égal à 0 ici ah, on déclare toujours un pointeur avec une valeur NULL. Ici je vais allouer 15 octets, que on va demander humblement de nous céder de la part de l'OS grâce à la fonction malloc. Pour ça, la syntaxe de la fonction malloc est la suivante. Vous mettez char avec une étoile. Donc c'est-à-dire qu'ici vous avez un retour d'un pointeur. Donc malloc et vous allez demander 15 octets, donc sizeof(15). Vous allez recevoir donc chaine de caractères. Donc ces 15 octets vont servir à chaine de caractères. Et à partir de là dans chaine de caractères, vous allez pouvoir faire strcopy et mettre en fait, votre phrase qui ne doit pas dépasser 15 octets, on est d'accord, puisque votre OS vous a permit d'aller piétiner, peut être dans les endroits où vous n'êtes peut être pas trop envie, que vous alliez. Mais bon vous demandez sa permission par le biais vraiment de malloc, si on vient à regarder à l'intérieur. Et donc nous émettons une phrase, est la phrase1,. C'est tout simple. printf (''chaine de caractères =%s, donc string, Adresse= %d \n'',chaine de caractères, chaine_de_caracteres) ; Et puis après, nous allons libérer ce qui nous a été donné après l'avoir affiché. Donc à partir de là, la mémoire allouée a été restituée. Donc toutes les données sont perdues, mais l'affichage reste, donc regardons. chaine de caractères = est la phrase 1, l'Adresse est celle-ci. Je les mis en décimal, bon changeons un peu. On libère la mémoire allouee, OK, mais là pour l'instant il y a rien qui dit qu'on a vraiment libéré de la mémoire. Comment on peut le savoir ? Dans ce cas là, je vais faire un copier coller de notre premier programme. Je fais Ctrl+Shift et je décommente X. Et cette fois ci je ne vais pas libérer la mémoire. C'est le même programme ah, en copier coller avec 15 octets. Et puis cette fois-ci je mets est la phrase 2. Donc je ne vais pas libérer la mémoire. Il n'y a pas une raison, je vais continuer à l'occuper. Lançons et là regardez. Je n'ai pas libéré la mémoire. Donc la phrase 2 vient de se stocker à une adresse, qui est différente de celle qui a été allouée au tout départ. Donc en fait, on n'a pas libéré la mémoire. Cette fois-ci je la libère, je libère la mémoire précédente, pour venir y mettre la phrase 2. Allez, on est repartie, je compile. et là il pu pu pourra, oui en effet, on voit bien que l'adresse est la même. C'est-à-dire que j'ai occupé cette adresse pour mettre est la phrase1. J'ai libéré l'espace alloué et en fait, pour mettre la phrase 2, je récupère en fait, l'espace alloué précédemment. Donc il a été libéré. Voilà un peu ce qu'on peut dire de l'allocation dynamique. Donc je fais Ctrl+Shift+C et là si vous faites n'importe quoi et ben vous obtenez n'importe quoi. Exemple, je fais Ctrl+Shift+X, je veux faire rentrer est phrase 3 avec 2 octets. Et bon, bah je libère la mémoire ah, tout ça et là regardons. Alors, là encore on a de la chance, il c'est passé quelque chose. Mais normalement on a même le droit à un crash des fois carrément ah. Donc vous voyez est la phrase blablaba, du n'importe quoi. Donc on récupère bien l'espace alloué précédemment. On était à 80 ah juste au début de cette vidéo. Donc là ben on retrouve 80 puisque on a fait free juste avant. Donc ben voià votre phrase 3. Vous avez encore de la chance d'ailleurs d'avoir est la pK ah, franchement c'est un gros coup de chance. L'adresse a encore changé et on arrive comme même à avoir un début de phrase, ce qui est tout à fait exceptionnelle ah. En fait, sachez vous, vous avez même normalement l'OS, qui vous dit carrément que votre application va cesser de fonctionner parce que là ce n'est pas possible vous faites n'importe quoi. Donc là on a encore beaucoup de chance pour cette vidéo. Toujours utile que je vous parle de l'allocation dynamique, de façon a retenir deux choses, c'est que il faut paramétrer en fait, votre espace et surtout ne pas oublier de le libérer, sinon tout ceci n'a plus aucun sens.

L'essentiel du langage C

Comprenez les concepts de base du langage C. Développez de simples applications en mode console, afin de comprendre les rouages d’un des langages les plus utilisés au monde.

7h51 (98 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !