Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel du langage C

Aborder l'allocation mémoire dynamique

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Ayez une première approche de la fonction malloc(), qui permet d'allouer de la mémoire à l'utilisateur.
05:59

Transcription

Je vais vous parler de l'allocation dynamique de la mémoire pour les variables. La problématique est la suivante. Il est difficile de prévoir l'espace mémoire que va demander un utilisateur. Et le but, comme même, est de ne pas gaspiller de mémoire inutilement. En plus, ça peut entrainer un accès au mémoire qui est beaucoup plus lent. Des programmes plus volumineux. Et des risques de dysfonctionnement beaucoup plus élevés. Les solutions sont d'effectuer de l'allocation de mémoire, mais par l'utilisateur lui-même. Pour ça, vous avez à votre disposition dans la bibliothèque stdlib.h, deux fonctions, la fonction malloc() et la fonction free(). Le but de malloc en fait est de réserver de l'espace mémoire RAM de la part de votre OS. Et l'utilisation de free est de restituer cette RAM utilisée par l'utilisateur, une fois qu'il a fini d'effectuer absolument toutes ses manipulations, Partons dans l'exemple concret qui va nous servir pour un atelier pratique, où nous allons décomposer en quatre parties notre programme pour arriver au résultat (INAUDIBLE). Nous partons d'un exemple où il faut créer un programme, qui permet d'enregistrer les coordonnées des clients d'un magasin de bricolage de façon à leur faire bénéficier de bons d'achat. Combien va-t-on avoir de clients ? La procédure va être la suivante. D'abord, il va falloir invoquer la fonction malloc. Une fois que malloc sera invoquée, il va falloir vérifier que l'espace RAM est disponible. Si l'espace RAM est disponible, donc votre OS répond favorablement à votre demande. L'utilisateur va effectuer l'acquisition, puis enregistrer le tout dans un fichier, fichier texte par exemple ou un tableur. Et libérer après l'espace mémoire. Ainsi, la base de données est complétée. La fonction malloc. La fonction malloc elle est un petit peu folklorique lorsque on l'envoie le paramètre de retour, paramètre de sortie qui est void, mais void avec un pointeur. Un pointeur en fait, qui est vide. Et oui évidemment puisque à l’instant où vous invoquez malloc, personne ne sait qu'elle est la taille maximal que l'allocation va pouvoir prendre. Donc c'est normal qu'on vous renvoie en fait, un pointeur vide. Concernant les deux paramètres d'entrée, un est optionnel size_t qui est l'équivalent de sizeof(). Et size vous avez ce paramètre là, qui peut être mis sous silence, si vous avez défini size_t. Mais dans tous les cas il va falloir comme même donner une taille à malloc, mais ça l'utilisateur peut le faire. Puis la fonction free, alors là elle ne renvoie rien du tout et elle a pour paramètre d'entrée, un pointeur NULL qui va permettre de raser toute la partie de la RAM, qui a été empruntée par l'utilisateur lors de sa mise en route de son acquisition. Pour arriver à notre atelier pratique, nous allons procéder en quatre programmes. Ces quatre programmes ont pour but de nous faire progresser sur la compréhension du fonctionnement de l'allocation dynamique. Donc dans allocation dynamique 1, vous aurez une première partie où nous allons allouer 15 octets, nous irons y mettre une chaine de caractères, et nous allons libérer l'espace. Nous allons faire quelque chose de très propre. Dans la deuxième partie nous allons faire la même chose, mais nous n'allons pas libérer l'espace. Et là nous allons pouvoir le visualiser. Et dans la troisième partie et ben on va faire n'importe quoi. On va allouer de l'espace, mais on va complètement piété avec notre chaine de caractères sur l'allocation qui nous a été donnée. Donc on va allègrement dépasser les 2 octets. Et là vous allez voir le beau crash qui va s'en suivre. et le mécontentement très prononcé de votre operating system. Dans notre programme 2, nous allons repartir donc de notre première partie. Mais cette fois ci on définie donc le nombre d'octets dont on connait le type, qui seront de type char, donc des blocs de 1 octet. La deuxième partie on demande au système d'exploitation si l'allocation dans la RAM est disponible. Et on troisième partie, on libère la partie de la RAM utilisée. On progressera toujours dans notre atelier avec ce troisième programme, qui est dans la première partie, on demande à l'utilisateur combien il y a de clients, ce qui va définir la taille de l'allocation. Puis, on demande toujours à l'OS si la RAM est disponible. On effectue l'acquisition de la part de l'utilisateur. Et enfin, on libère la RAM. Et nous finissons avec allocation dynamique 4, qui sera la conclusion en fait, de notre programme, où nous reprenons toutes les premières parties que nous avons vu avant. Puis nous allons écrire une petite routine, qui va nous permettre de générer un fichier texte, avant de libérer toute la mémoire que l'utilisateur a utilisé. Voila ce qui nous attend dans les vidéos suivantes.

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 !