Langage C #15 - allocation dynamique mémoire

Поділитися
Вставка
  • Опубліковано 30 жов 2024

КОМЕНТАРІ • 371

  • @formation-video
    @formation-video  7 років тому +40

    Nouvelle notion très importante du langage C, l'allocation de mémoire de manière dynamique. Ce procédé permet par exemple de réserver un espace dont une ne sait pas à l'avance quelle taille il fera.

    • @ismaelhassan5110
      @ismaelhassan5110 7 років тому +1

      Vraiment merci tu ma sauver

    • @ismaelhassan5110
      @ismaelhassan5110 7 років тому +1

      Pouvez vous m'expliquer pourquoi chaque fois on le met cet multiplication en haut de
      *liste_joueurs et aussi sizeof(int ) * nombreJoueurs, nombreJoueurs * sizeof(int ) . Ce quoi l'utilite de cet etoile ..

    • @ismaelhassan5110
      @ismaelhassan5110 7 років тому

      Et deuxiement si je laisse son etoile qsk va se changer ou bien ca serai la meme chose merci d'avance

    • @ismaelhassan5110
      @ismaelhassan5110 7 років тому +1

      Et pourquoi lorsq nous somme ds calloc on fait pas l'etoile * . Vraiment sauve moi je besoin a savoir plz mn frere

    • @levraidieulevraidieu4385
      @levraidieulevraidieu4385 5 років тому

      regarde la video sur les pointeurs

  • @Semma56
    @Semma56 2 роки тому +11

    Je crois que j'ai plus appris en language c en quelques mois que d'anglais pendant 2 ans ! Tu expliques super bien en détaillant tout ce que tu écris et a quoi ça sert du coup je comprends très bien le language surtout que je suis assez jeune, au collège, et que d'habitude pour mon age il est difficile d'assimiler, eh bien la, j'apprend super vite grace a toi. Merci infiniment pour tout ce que tu fais !

    • @formation-video
      @formation-video  2 роки тому

      Content de l'apprendre, bonne progression dans ce langage par ailleurs ✌

    • @duckide6520
      @duckide6520 Рік тому +1

      Félicitations, c'est bien d'être curieux et de vouloir apprendre à un si jeune âge.

  • @rosella399
    @rosella399 3 роки тому +5

    Merci beaucoup pour tes vidéos! Elles sont super claires et j'ai tout compris! J'ai réussi mon partiel grâce à toi! Merci!

    • @formation-video
      @formation-video  3 роки тому +1

      Ah bonne nouvelle, mais n'oublie pas que c'est surtout grâce à toi d'abord 🙂👍

  • @fnicolay100
    @fnicolay100 6 років тому +8

    Encore une fois, explication clair net et précise.

    • @formation-video
      @formation-video  6 років тому +1

      Impeccable pour toi alors, bonne continuation ;)

  • @ismaelhassan5110
    @ismaelhassan5110 7 років тому +3

    Premierement je te remercie bcp mille fois et tu merite plus que ca et la formation ca ma vraiment aide bcp merci encore je ne jamais vu dans youtube une formation C comme toi actuellement j ai entain de terminer bientot .

    • @formation-video
      @formation-video  7 років тому +1

      Bonjour et merci beaucoup pour ton commentaire :) !

  • @hassendjadja1395
    @hassendjadja1395 5 років тому +5

    Merci infiniment pour ce parfait cours.

    • @formation-video
      @formation-video  5 років тому

      De rien =)
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @alwaysseekknowledge8980
    @alwaysseekknowledge8980 3 роки тому +3

    Merci d'exister monsieur Jason Champagne, vous êtes une bénédiction pour nous tous.... et je n'exagère même pas ! :)

  • @alexalkhatib898
    @alexalkhatib898 2 роки тому +2

    Merci beaucoup pour tes vidéos
    On fait programmation système à la fac et je savais pas à quoi sert malloc, super explication continue ainsi

  • @ubuesque7415
    @ubuesque7415 5 років тому +7

    Quand j'ai regardé l'heure à laquelle tu as tourné cette vidéo...
    J'ai cru que c'était l'heure de mon PC !

    • @formation-video
      @formation-video  5 років тому

      Ahah, je me souviens d'anciennes vidéos faites pendant la nuit ;)
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8

  • @Alan_G
    @Alan_G 7 років тому +5

    Excellente vidéo! Très utile pour ma part en Licence Informatique pour une révision de la notion merci a toi :)

    • @formation-video
      @formation-video  7 років тому

      Bonjour et bonnes révisions à toi dans ce cas :) !

  • @rock-pro-solo
    @rock-pro-solo 2 роки тому

    Merci pour tout ces cours !!
    Vous êtes le meilleur continué comme ça.

  • @Lornoir92
    @Lornoir92 2 роки тому +1

    Super vidéo et explications limpides comme toujours. On s'était pris un zéro avec mes camarades de piscine lors d'un rush sur un towerdoku : on avait oublié de libérer la mémoire à la fin du programme. Deux jours de travail mis à la poubelle juste à cause d'un free manquant. 😢

    • @formation-video
      @formation-video  2 роки тому +1

      Ah, c'est sûr que ça cassait tout le boulot effectué

  • @matthieu8114
    @matthieu8114 6 років тому +2

    Je rejoins l'avis général, super explication ! Ça faisait plusieurs séances de cours que j'étais largué 😂... (L'avenir de l'enseignement est sur yt.) Merci beaucoup ! ☺

    • @formation-video
      @formation-video  6 років тому +1

      Content que tu as pu comprendre. Une fois que c'est assimilé, les pointeurs et la gestion de la mémoire en C ne sont plus si compliqués à employer :)

  • @Lornoir92
    @Lornoir92 2 роки тому

    J'étais bien là. Je suivais ta vidéo et tout, j'étais à fond jusqu'au moment où tu fais "c'est-à-dur". Ça m'a tué !! :D

  • @marouan195
    @marouan195 7 років тому +6

    t'es trop fort mec , continue :)

  • @hamzaomari7052
    @hamzaomari7052 3 роки тому +2

    Merci beaucoup monsieur pour vos vidéos :)

  • @dazarak8112
    @dazarak8112 2 роки тому +1

    J'adore tes vidéos tu explique bien et tu es claire c'est juste parfais !

    • @formation-video
      @formation-video  2 роки тому

      Content que cela te convienne, bonne continuation 👍

  • @elmehdiben895
    @elmehdiben895 5 років тому +2

    Très bien expliqué 😘, merci beaucoup.

    • @formation-video
      @formation-video  5 років тому

      De rien, merci à toi 😊
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @iKilleasy007
    @iKilleasy007 5 років тому +2

    Si tu souhaites allouer de la mémoire consécutive pour plusieurs variables de même
    type (typiquement un tableau dynamique), c'est mieux d'utiliser calloc que malloc.
    Parce que p = malloc(n * sizeof(Type)) peut engendrer un overflow sur la multiplication
    et allouer en fait bien moins que n cases, ce qui peut ensuite conduire à un
    débordement mémoire sur p[i].
    Sinon bonne vidéo !

    • @formation-video
      @formation-video  5 років тому +1

      Bonsoir, j'imagine que tu fais référence au fait qu'avec malloc(), comme la mémoire n'est pas initialisé, si on passe une taille qui dépasse la borne max. d'un entier par exemple, on aura un débordement, là où calloc() le bloquera ?
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @Jihane_06
    @Jihane_06 Рік тому +2

    Ça fait 6 ans la vidéo a été publié, mdr 😂. Merciii pour tes vidéos ça m'a beaucoup aidé même si tes vidéos sont super longues

    • @formation-video
      @formation-video  Рік тому +1

      Bonne continuation 👍
      Si les vidéos sont longues pour toi, regarde-les juste en plusieurs fois.

  • @ulrichnelson3636
    @ulrichnelson3636 6 років тому +2

    merci pour le tutoriel JASON

    • @formation-video
      @formation-video  6 років тому +1

      De rien, c'est un concept très important en plus :)
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8/
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @maxcool9460
    @maxcool9460 3 роки тому

    MERCI D’ÊTRE LÀ MERCI VRAIMENT🙏🏼

  • @Sow_sow2024
    @Sow_sow2024 4 роки тому +1

    Bonjour Merci pour toutes ces videos !

  • @marieviadieu6483
    @marieviadieu6483 4 роки тому

    Super bien expliqué comme d'habitude... Je pense que ta chaîne a sauvé ma première semaine de piscine.

    • @formation-video
      @formation-video  4 роки тому +1

      Bon courage et accroche-toi 🙂 !
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @marieviadieu6483
      @marieviadieu6483 4 роки тому

      Merci mais vraiment ça se passe bien!
      Je sais pas comment j’aurais pu faire sans tes vidéos! Encore merci!

    • @formation-video
      @formation-video  4 роки тому

      Tant mieux, ça montre que tu aimes ce que tu fais et que ça te motive à apprendre :)
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @lyrellle
      @lyrellle 3 роки тому +1

      ALors t'as reussi ?

  • @warriorpils
    @warriorpils 6 років тому +1

    Merci pour cette video, impatient de voir les autres !

  • @requindr
    @requindr 3 роки тому +2

    Merci beaucoup, c’est très clair

  • @sabrinachouikrat7121
    @sabrinachouikrat7121 3 роки тому

    merci Jason pour tous tes efforts ça bous aide énormément!(

  • @christopher-bn1xo
    @christopher-bn1xo 6 років тому +2

    vous expliquez trop bien

  • @hassanbrahimadouma5776
    @hassanbrahimadouma5776 2 роки тому

    Merci énormément pour ce cours

  • @theocohen6174
    @theocohen6174 8 місяців тому

    Merci beaucoup pour la video c'est vraiment top

  • @djerome3597
    @djerome3597 5 років тому +1

    Merci pour les explications de qualité
    Bonne continuation !

    • @formation-video
      @formation-video  5 років тому

      Merci à toi ! ✌
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @aminegh8725
    @aminegh8725 6 років тому +1

    bonne explication claire et simple merci beaucoup

    • @formation-video
      @formation-video  6 років тому

      Bon courage sur la suite Amine =)
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @paulfortuna
    @paulfortuna 2 роки тому +1

    Bonjour, j'ai une question ! J'ai un tableau de chaine de caractère dynamique , et je dois transférer dans une chaine dynamique chaque mot du tableau en concatenant à chaque fois. Ca veut dire transformer le tableau de chaine de caractère dynamique en une phrase concaténée et contenue dans ma chaine de caractère dynamique. Jusqu'ici je parviens à réaliser le programme, cependant j'aimerai, à chaque fois que je transfère un mot, le supprimer du tableau après. J'ai pensé à utilisé la fonction realloc( ) mais je ne parviens à supprimer malgré tout. J'ai besoin de votre aide :) Merci pour la vidéo !

    • @formation-video
      @formation-video  2 роки тому

      Bonjour, pour supprimer, tu peux remplacer chacun des caractères par un '\0', tout simplement.
      Mais attention, si tu as alloué dynamiquement un espace mémoire, ce dernier devra dans tous les cas être libéré une fois que tu n'en as plus besoin.

  • @abdouanmar7337
    @abdouanmar7337 6 років тому +1

    tu est excellent mec c est troos bien

  • @oussamamahmoudi3369
    @oussamamahmoudi3369 6 років тому +2

    Jason Merci pour tout Les efforts que tu fais, j'ai une question ton compilateur ta pas forcer a cast le retour de ta Fonction malloc par contre moi Oui. Pourquoi stp?

    • @formation-video
      @formation-video  6 років тому

      Maintenant, il n'est plus nécessaire de caster le retour de malloc(), sauf si tu as un compilateur datant d'il y a 20 ans :D.
      Donc plus besoin de faire (int*) malloc(sizeof(int)) par exemple, mais juste malloc(sizeof(int))

  • @drumandbassfromju
    @drumandbassfromju 2 роки тому

    Merci pour la vidéo

  • @hnrhnr4541
    @hnrhnr4541 5 місяців тому

    Bonjour, je n'ai pas compris pourquoi realloc prend liste_joueurs en paramètre alors que liste_joueurs est déjà à gauche du signe =, pouvez-vous m'éclairer svp ? merci pour vos vidéos

    • @formation-video
      @formation-video  5 місяців тому

      Bonjour, si tu ne comprends pas l'opérateur d'affectation, il va falloir revenir sur les premières vidéos du cours.
      Par exemple, quand j'ai cette expression -> result = 156 + 8;
      On a l'opération 156 + 8 qui est effectuée, puis la somme est affectée à la variable "result".

  • @sebdrw9504
    @sebdrw9504 6 років тому +1

    Si on désire utiliser un tableau qu'on a alloué dynamiquement durant toute la période d'un jeu programmé. Faut il à chaque fois ré-allouer la mémoire et refaire un free en boucle ? Merci

    • @formation-video
      @formation-video  6 років тому

      Non, tu vas allouer ton tableau une seule fois, avec la place que tu as besoin, t'en servir au cours de l'exécution du programme (éventuellement ré-allouer un espace plus grand/petit si nécessaire), et libérer le tout à la fin (ou au mieux, quand les ressources ne sont plus utilisées, pour optimiser les performances)
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8/
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @avrahammarciano1918
    @avrahammarciano1918 5 років тому +1

    bonjour, je ne comprends pas pourquoi est ce qu'il a fallut à 12:00 déclarer liste_joueurs en pointeur ? En plus, plus tard dans le programme il devient un tableau qui est lui-même un pointeur, donc je ne comprends pas l'utilité de le déclaré en pointeur ?
    A part ca, j'ai essayé dans ce programme de prendre le 'printf ("[%d]",listeJoueur[i]);' qui se trouve dans le deuxième for et de l’insérer dans le premier ce qui m'a écrit dans le programme chaque case dans une ligne au lieu que ce soit toutes les cases sur une même ligne comme dans ton programme en mettant un deuxième for et je ne comprend pas pourquoi il faut mettre un nouveau for pour que ça marche?
    merci encore pour toutes tes réponses et tes vidéos de qualité!

    • @formation-video
      @formation-video  5 років тому +2

      La liste des joueurs est déclarée comme pointeur car on va fait une allocation dynamique par la suite (ce n'est pas un tableau à taille fixe spécifiée à la déclaration de ce tableau).
      Ensuite, le deuxième n'est en rien obligatoire comme tu l'as vu, puisqu'ils font le même parcours (du premier élément du tableau au dernier, donc tu pouvais sans soucis tout mettre dans un seul et gérer ton affichage comme tu le souhaites 🙂
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @Leoppa-fn4zt
    @Leoppa-fn4zt 5 років тому +1

    J'ai compilé le programme sur Eclipse et cela ne marche pas pourtant j'ai exactement les mêmes lignes de codes :/

    • @formation-video
      @formation-video  5 років тому

      Quelle erreur te donne le compilateur ?
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @arthurboulli5887
    @arthurboulli5887 6 років тому +1

    Bonjour à 7 : 50, vous dites que après avoir allouer dynamiquement une zone mémoire pour le pointeur, on va créer un tableau de x joueurs, a quel moment la création du tableau s'est faite?
    De plus je ne vois pas en quoi, dans cet exemple allouer une zone de mémoire pour le pointeur liste_joueurs est utile, en exécutant le programme sans malloc le résultat est strictement le même.

    • @formation-video
      @formation-video  6 років тому

      Bonjour, l'allocation dynamique est effectivement utile quand on ne sait pas à l'avance quelle taille on doit allouer. Si on le sait, il suffit de créer le tableau avec une taille fixe directement inscrite dans le code (ex : tableau[4]). Mais si la taille du tableau doit être générée/choisie à l'exécution du programme, il faudra passer par une allocation dynamique.
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @lucaschen4492
    @lucaschen4492 6 років тому +1

    Bonsoir, je débute en C. Je code en java, et je ne connais pas très bien les pointeurs et les allocations dynamiques, si je créé un tableau en passant par :
    int *tab;
    int taille;
    scanf("%d",&taille);
    tab = malloc(sizeof(int) * taille);
    comment jpeux créer une matrice int[][] dans ce cas?

    • @formation-video
      @formation-video  6 років тому +1

      Bonjour, si ce n'est pas fait, je te recommande de voir les autres vidéos du cours en C (notamment et justement concernant les pointeurs, les tableaux, les chaînes de caractères, etc.)
      Donc pour allouer un tableau à deux dimensions, il faudra parcourir chaque case de la dimension 1, et allouer la taille nécessaire pour la dimension 2.

    • @lucaschen4492
      @lucaschen4492 6 років тому +1

      Oui j’ai regardé, c’est juste un peu dur à appliquer comme c’est nouveau, merci de votre réponse :)

    • @formation-video
      @formation-video  6 років тому

      Oui, il faut prendre le temps et ça finira par entrer

  • @Ingtechno3503
    @Ingtechno3503 4 роки тому +2

    Exellente explication !!!
    une question : dans certain code on ecrit par exemple : tab= (int*) malloc (5*sizeof(int))
    à quoi ca sert cette (int *) pourquoi on l'écrit ??

    • @formation-video
      @formation-video  4 роки тому +1

      C'est de l'ancien code, à l'époque il fallait obligatoirement caster le retour de la fonction malloc(), ce qui n'est plus le cas (et plus à faire) depuis un bon bout de temps 😉
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8

  • @rambokiller3467
    @rambokiller3467 5 років тому +1

    bonjour j'ai une petite question concernant la liste de joueur qu'on a creé sous forme de pointeur : est ce qu'on ne peut pas declarer la liste de joueur sous forme de tableau sans l'initialiser comme ca int listejoueurs[ ];

    • @formation-video
      @formation-video  5 років тому +1

      Tu peux tester dans ton code et tu verras ce que ça donne 😉
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @ismaelhassan5110
    @ismaelhassan5110 7 років тому +1

    Ce que je remarque j'utilise Dev-C++ et j arrivai pas a execute ton programme mais desq j ai effacer la partie ''''''' if (liste_joueurs == NULL) ;
    exit(1);''''''''''''' j ai pu excuter . Et le problem que tu disais il y aura des bug j'ai essayer mm si tu rentre pas qlk choses et que c'est vide le programme va etre en mode console rien ne marche jusqa que tu rentre qlk choses dc ''''''''il n yaura pas des bug''''''''' . Merci

    • @formation-video
      @formation-video  7 років тому

      Le logiciel Dev C++ se fait vieux, tu ferais mieux d'utiliser un autre environnement comme Code::blocks.

    • @mountakhafall6360
      @mountakhafall6360 7 років тому +1

      efface le point virgule aprés ton if (liste_joueurs == NULL) ;

  • @ismaelhassan5110
    @ismaelhassan5110 7 років тому +1

    Pouvez vous m'expliquer pourquoi chaque fois on le met cet multiplication en haut de
    *liste_joueurs et aussi sizeof(int ) * nombreJoueurs, nombreJoueurs * sizeof(int ) . Ce quoi l'utilite de cet etoile ...

    • @formation-video
      @formation-video  7 років тому

      Il ne s'agit pas d'une multiplication mais de la notation d'un pointeur. N'hésite pas à revoir la vidéo sur les pointeurs pour en comprendre tout son fonctionnement :)

    • @ismaelhassan5110
      @ismaelhassan5110 7 років тому +2

      Je comprend cest un pointeur mm ca ma confuse un peu frere

    • @ismaelhassan5110
      @ismaelhassan5110 7 років тому +1

      Tu peux m'expliquer si tu peux sn merci

    • @formation-video
      @formation-video  7 років тому +1

      Alors dans le malloc(), l'étoile est bien pour une multiplication, puisqu'on demande d'allouer en mémoire la taille d'un entier (int) fois le nombre de joueurs qu'il y a.
      En revanche, la liste de joueurs, comme on ne sait pas d'avance quelle taille elle fera est un pointeur, que l'on va ensuite allouer pour former un tableau de X éléments, où X est le nombre de joueurs choisis par l'utilisateur.

  • @mahamadoudiawara741
    @mahamadoudiawara741 Рік тому

    Bonsoir monsieur.
    En voulant compiler mon programme, il signale toujours une erreur au niveau du malloc alors qu'il en a pas. Merci d'avance pour votre aide

  • @loicarnaudkana4448
    @loicarnaudkana4448 3 роки тому

    Svp comme comment écrit un programme d'allocation dynamique des tableau en c qui demande un nom et en suite les notes. lorsque j'écris printf("entre le nom de l'élève
    ");
    Scanf("%c",&nom"); j'ai compilé et ça demande bien le non mais une fois le nom saisir le programme ne continue plus sur le tableau ça s'arrête

  • @guillaumedumas7819
    @guillaumedumas7819 3 роки тому +1

    Bro t'es un crackito

  • @amaurylaperche3993
    @amaurylaperche3993 3 роки тому

    salut je voulais savoir si pour faire des fgets/c ou fscanf il fallait nécessairement que les fichiers soit crées avant de lancer le code ?

    • @formation-video
      @formation-video  3 роки тому

      Pas si tu lis dans autre chose qu'un fichier. Mais quand tu cherches à ouvrir en lecture seule, il faut évidemment que ce dernier existe déjà (cela n'aurait aucun sens d'ouvrir en lecture un fichier qui n'existe pas)

  • @thecrazzxz3383
    @thecrazzxz3383 4 роки тому

    J'ai fait le même truc que toi sur les joueurs au début et je m'suis tapé le délire de mettre 99999 joueurs, mon pc a crash GG !

    • @formation-video
      @formation-video  4 роки тому

      Nice 👍
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

  • @ledomainedeanjo2207
    @ledomainedeanjo2207 4 роки тому

    bonjour moi j'ai u un souci avec exit(1) j'ai du le remplacer par return 0 et sa fonctionne, sa risque rien quand même ?

    • @formation-video
      @formation-video  4 роки тому

      Bonjour, pour utiliser la fonction exit(), il faut penser à inclure l'en-tête "stdlib" en début de fichier, en plus de "stdio".
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

  • @WTFax
    @WTFax 6 років тому +1

    Bravo! Merci

  • @eriencharmely
    @eriencharmely 3 роки тому

    J’ai lu ce cours mais j’aimerais savoir comment allouer une mémoire en c pour y mettre des mots comme un tableau de mots ou nom dans un tableau avec malloc j’ai essayé avec un int mais je n’arrive pas avec un char ???

    • @formation-video
      @formation-video  3 роки тому +1

      Donc, tu veux un tableau de chaînes : pastebin.com/LpMrjeG0

  • @wil5088
    @wil5088 4 роки тому +1

    Bonjour Merci pour toutes ces videos ! Petite question comment fait tu pour mettre ton cmd en bleu ? Merci d'avance !

    • @formation-video
      @formation-video  4 роки тому

      Bonjour, quand ton terminal est ouvert, en haut à gauche de la fenêtre tu fais un clic-droit sur l'icône > Propriétés 👍
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

  • @osmanelaihem8207
    @osmanelaihem8207 6 років тому +1

    est il possible d'avoir un lien pour s'exercer sur le c?
    merci

    • @formation-video
      @formation-video  6 років тому

      La playlist des exercices en C est ici : ua-cam.com/play/PLrSOXFDHBtfF6lXQpJ4hBha76DsQufiEQ.html
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @melinaderdab7512
    @melinaderdab7512 4 роки тому

    bonjour,
    je souhaite créer un tableau dont je ne connais pas la taille sauf que c'est un tableau composé de type comment faire dans ce cas la par exemple j'ai:
    type defstruct{
    int mois;
    int jour ;
    char prenom[20]
    int annee;
    }
    date tab [N]
    sauf que ne connais pas N ça dépendre du nombre de date que mon utilisateur voudra rentrer ...

    • @formation-video
      @formation-video  4 роки тому

      Bonjour, comme pour n'importe quel type de donnée, tu peux simplement déclarer un date *tab - ensuite tu demanderas la taille à l'utilisateur et tu pourras ensuite allouer le nombre de dates nécessaires.
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

  • @fatimazahrabenhammou8495
    @fatimazahrabenhammou8495 4 роки тому +1

    Life saver , Thank u so muuch :D

    • @formation-video
      @formation-video  4 роки тому

      Bon courage avec ce que tu apprends en C, et n'hésite pas si tu as besoin 😉
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8

  • @Leibniz4088
    @Leibniz4088 Рік тому

    merci infiniment

  • @uettechatfertyuiop3134
    @uettechatfertyuiop3134 4 роки тому

    J'ai un problème:
    depuis aujourd'hui, dès que je compile un programme, windows defender le reconnait en tant que menace :/
    Comment faire pour y remédier ?
    Merci d'avance

    • @formation-video
      @formation-video  4 роки тому

      Il faudrait passer en liste blanche/d'exclusion ton répertoire de travail : support.microsoft.com/fr-fr/help/4028485/windows-10-add-an-exclusion-to-windows-security
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @uettechatfertyuiop3134
      @uettechatfertyuiop3134 4 роки тому

      @@formation-video merci, mais est-ce normal que ce problème n'intervient que quelque fois (hier tout le temps aujourd'hui sans rien faire jamais)?

    • @formation-video
      @formation-video  4 роки тому

      Oui, tout dépend de comment est analysé le fichier par ton antivirus
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @uettechatfertyuiop3134
      @uettechatfertyuiop3134 4 роки тому

      @@formation-video OK merci !!!!!!

  • @aureliencortes-couturier7373

    Salut tes vidéos sont super bien, je comprend bien mieux grâce à toi, merci beaucoup.
    Je voulais savoir si tu connaissais un bon site internet avec exercice corrigé de niveau plutôt débutant ou même tout niveau ça me permettrai de progresser?

    • @formation-video
      @formation-video  Рік тому

      Salut, une recherche sur n'importe quel moteur du style "exercices langage C corrigés" fait toujours l'affaire.
      Sinon, il y a cette playlist : github.com/jasonchampagne/FormationVideo/blob/master/Playlists/c-exercices.md

  • @bondif
    @bondif 6 років тому +1

    bonjour Jason,
    comment faire pour réduire la taille d'1 tableau dynamiquement.

    • @formation-video
      @formation-video  6 років тому +1

      Bonsoir, il faudra ré-allouer un nouvel espace plus petit, tout en pensant à libérer l'ancien

    • @bondif
      @bondif 6 років тому +1

      merciiii

    • @formation-video
      @formation-video  6 років тому

      Pas de quoi =)

  • @khalilyousfi3927
    @khalilyousfi3927 3 роки тому

    bon travail merci

  • @ismaelhassan5110
    @ismaelhassan5110 7 років тому +5

    #include
    #include
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    /*
    sizeof() : retourner la taille en octets d'une donnee
    malloc() : allouer dynamiquement une zone memoire
    */
    int main(void) {
    int nombreJoueurs=0 ;
    int * liste_joueurs = NULL ;
    int i ;
    printf("Combien des joueurs ?") ;
    scanf("%d" ,&nombreJoueurs);
    liste_joueurs = malloc(sizeof(int ) * nombreJoueurs) ;
    if (liste_joueurs == NULL) ;
    exit(1);
    for (i = 0 ; i< nombreJoueurs; i++){
    printf("Joueurs %d -> numero %d
    ", i+1 , i*3);
    liste_joueurs[i] = i * 3 ;
    }
    for (i = 0 ; i< nombreJoueurs ; i++){
    printf("[%d] ",liste_joueurs[i]);
    }
    free(liste_joueurs) ;
    return 0;
    }

    • @momobabo50
      @momobabo50 6 років тому

      Le programme s arrette apres le scanf chez moi

    • @blyat6308
      @blyat6308 5 років тому

      Scanf c'est tout sauf safe

    • @blyat6308
      @blyat6308 5 років тому

      Il faut faire un if(fgets(buf, sizeof buf, stdin) ) {}

  • @simaotungadias8803
    @simaotungadias8803 5 років тому

    Re chef je voulais savoir si j'utilise calloc sur une struct qu'est-ce qui ce passe tout sera a 0 ou null ou bien quelque chose de différent

    • @formation-video
      @formation-video  5 років тому

      Toutes les bits seront à 0.
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @ennui_creatif7110
    @ennui_creatif7110 3 роки тому

    il ya un truc de l'allocation dynamique que je ne pige pas. Par exemple, un utilisateur doit rentrer une chaine de caractère. Donc on ne connait pas la taille au préalable. Donc comment on alloue l'espace? J'ai pensé:
    char *ligne
    ligne= malloc(sizeof(char)); // j'alloue une place pour caractère en mémoire (je fais ça pour pouvoir réallouer)
    scanf("%s",ligne);
    ligne=realloc(ligne,strlen(ligne)*sizeof(char)); //Je réalloue la vrai place en mémoire à la ligne
    printf("%s",ligne);
    Est-ce que ça va marcher?
    En ce moment, j'ai du mal avec les chaines de caractères et l'allocation 😅

    • @formation-video
      @formation-video  3 роки тому

      Alors dans ce cas de figure, on passera pas un buffer, puis on affectera ce qui a été lu à notre donnée d'arrivée, ceci te donnera les éléments qu'il te manque : ua-cam.com/video/dbUDyMtFFlc/v-deo.html

  • @martinnoirfalise7465
    @martinnoirfalise7465 3 роки тому

    merci beaucoup pour cette vidéo!
    juste une question:
    quel est l'intérêt d'utiliser malloc plutot que calloc? vu que calloc initialise à 0, cela rendra toujours le code plus propre non?

    • @formation-video
      @formation-video  3 роки тому +1

      En soit (même si minime), l'usage de malloc() est plus rapide que calloc(), c'est au choix 😉

  • @MrHugoBoys
    @MrHugoBoys 6 років тому +1

    Comment as tu Fait pour avoir cet "émulateur" Sur Windows ? Merci 😊

    • @formation-video
      @formation-video  6 років тому

      Quel émulateur ?
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8/
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

    • @MrHugoBoys
      @MrHugoBoys 6 років тому +1

      Comment as tu eu cette page Pour taper le programme avec mes fonctions qui se mettent en couleurs etc 😊

    • @formation-video
      @formation-video  6 років тому

      Ah, c'est l'éditeur de code, là où j'écris mon programme. Tu en as plusieurs que tu peux tester pour trouver celui que tu préfères (Notepad++, Sublime Text, Visual Studio Code, Atom, Brackets, etc.)
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8/
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

    • @MrHugoBoys
      @MrHugoBoys 6 років тому +1

      D'accord merci beaucoup ça va bien me servir

    • @formation-video
      @formation-video  6 років тому

      De rien :), c'est très utile pour rendre son code plus lisible.
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8/
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

  • @xsvmyx7595
    @xsvmyx7595 Рік тому

    mais comment il fait pour récupérer les anciennes données si il change d'adresse ?
    //merci pour la video

  • @InnocentKabore-l7i
    @InnocentKabore-l7i 8 місяців тому

    Super les explications!Merci beaucoup cependant je voulais savoir si y'a des sections dans ta chaine ou tu propose des exercices parce que tu en parle du coup mais je retrouve pas la section .

  • @LoperamideTV
    @LoperamideTV 7 місяців тому

    Salut ! Tout d'abord, merci pour ta vidéo.
    J'ai une question et je n'arrive à y répondre. J'ai toujours utilisé malloc exactement comme tu le fais et ça a toujours fonctionné. J'ai été lire de la doc et j'ai appris que malloc renvoyait un pointeur de type void sur le heap (qu'on doit normalement caster dans le bon type) qu'on peut ensuite manipuler à sa guise.
    Du coup, je n'arrive pas à saisir pourquoi lorsqu'on manipule les données derrière le pointeur, on a pas besoin de le déréférencer. Ca marche comme une variable classique et ça, j'avoue que ça me trotte.
    Est-ce que tu saurais expliquer pourquoi ça fonctionne comme ça ? Je suis persuadé que je n'ai juste pas bien compris quelque chose et que c'est trivial. Mais là, je ne vois pas où je me plante.
    Je te remercie pour ton temps et je te souhaite une bonne journée.

    • @formation-video
      @formation-video  7 місяців тому

      Bonjour, la raison est toute simple : c'est le compilateur qui le fait à notre place, d'où le fait de ne pas avoir besoin de déréférencer explicitement notre pointeur 👍

    • @LoperamideTV
      @LoperamideTV 7 місяців тому

      @@formation-video Merci du fond du cœur. 😄
      Ça me rendait fou. Et je ne suis jamais tombé précisément sur cette info.
      D’ailleurs, j’ai constaté que selon le compilateur (et selon sa version surtout) on peut choisir de le faire, ou non. 🤷‍♂️

    • @formation-video
      @formation-video  7 місяців тому

      Généralement, on ne le fait pas, et on ne se prend pas la tête. C'est à la charge du compilateur

    • @LoperamideTV
      @LoperamideTV 7 місяців тому

      @@formation-video effectivement. Et ça marche parfaitement comme ça. Merci beaucoup de ton aide. 👍

  • @thierry7750
    @thierry7750 3 роки тому

    Salut. Ta vidéo est superbe. J'aurai juste une question
    Pourquoi tu as enlevé > après que tu aies initialisé nombreJoueurs à 2 et enlever le scanf ?
    J'ai refait cet exemple sur un terminal et ça m'affiche pas d'erreur sans le free mais avec le free si. Donc tu as raison.
    Mais je comprends pas enfaite pourquoi on doit enlever le free. Est ce parce qu'on a initialisé ? Car quand on initialise ça alloue un emplacement mais sinon pourquoi enlever le free ? Si c'est le cas pourquoi utiliser malloc si on a pas de free ? Je sais je demande beaucoup ; merci !

    • @formation-video
      @formation-video  3 роки тому

      Bonsoir, à quel moment de la vidéo exactement ?

  • @shadomartin2249
    @shadomartin2249 11 місяців тому

    Bonsoir c'est encore moi je souhaiterais poser quelques questions au sujet de l'allocation dynamique , dans mon cas precis je veux creer une fonction qui me permettra de diviser ma chaine de caracteres en mots puis stocker ces mots dans un tableau, donc cela veut dire que lorsque je ferai malloc(sizeof(char *) * le_nombre_de_mots) pour les chaines de caracteres (mots de la phrase) du tableau est ce que la machine me reserve une chaine vide de [255] octets directement ? (si c' est le cas est il necessaire de penser a allouer la memoire au nombre de caractere de chaque mots apres avoir alloue la memoire pour mon tableau plus haut? )

    • @formation-video
      @formation-video  11 місяців тому +1

      Bonsoir, avec ton instruction malloc dans ton commentaire, tu ne ferais qu'allouer l'espace pour le tableau de pointeurs de caractères. Les pointeurs seraient donc alloués, mais pas les mots eux-mêmes.
      Donc, il faudra aussi songer à effectuer les allocations pour chaque mot 👍

    • @shadomartin2249
      @shadomartin2249 11 місяців тому

      @@formation-video Merci beaucoup alors

    • @shadomartin2249
      @shadomartin2249 11 місяців тому

      Ok tu pourrais me donner une idée de comment faire cette foncion bon en gros elle prend en paramètre une chaine de caractères et sépare les mots de la chaîne a chaque caractères non alpha numérique et les stockent dans le tableau qu'elle retournera😢

    • @shadomartin2249
      @shadomartin2249 11 місяців тому

      En gros un tuto je suis perdu

    • @formation-video
      @formation-video  11 місяців тому

      Faire un "tuto" sur ça reviendrait à écrire le programme complet, et donc, de donner la solution, ce qui serait totalement contre-productif pour apprendre et assimiler.
      Si tu as des difficultés à visualiser comment tu peux écrire ce programme, n'hésite pas à noter et faire des schémas, des illustrations, et te représenter les opérations à réaliser. Ensuite, il suffira de combler cela avec tes connaissances du langage, et s'il t'en manque à te documenter, c'est fait pour ça 👍

  • @kkresonance4736
    @kkresonance4736 6 років тому +1

    Belle video, tres bon son et tres bien explique, mais j'ai quelques questions. Comment alloue-t-on dynamiquement de la memoire sur une chaine de caractere, on doit compter chaque caractere + le caractere de fin de chaine ? Et est-ce que le calloc () initialise egalement les chaines de caractere a { }, ou il ne fonctionne pas sur les chaines de caracteres (surtout en ce qui concerne l'utilisation de cette fonction sur des structures) ?
    Merci d'avance !

    • @formation-video
      @formation-video  6 років тому

      Bonsoir :).
      Pour une chaîne, il faut savoir le nombre de caractères (+ 1 pour le caractère de fin, oui), mais pour cela, il suffit d'utiliser la fonction strlen().
      Et pour la fonction calloc() sur une chaîne, ce sera initialisé à "null" (l'équivalent de 0 pour une nombre).

    • @kkresonance4736
      @kkresonance4736 6 років тому +1

      Merci de votre reponse !

    • @formation-video
      @formation-video  6 років тому

      De rien :)

  • @askyp9102
    @askyp9102 2 роки тому

    Bonsoir , merci encore pour cette vidéo ! Juste quelque chose me perturbe : comment l'ordi sait t il retrouver la bonne adresse avec tableau[i] , sans même savoir si les valeurs font 1,2, ou 4 octets. Et si il le sait , comment ? Merci d'avance

    • @formation-video
      @formation-video  2 роки тому

      Bonsoir. En mémoire, chaque adresse permet de stocker une donnée sur 8 bits (1 octet). Dans le langage de programmation, chaque type de donnée occupe un espace bien spécifique en mémoire.
      Par exemple, le type "int" peut occuper 4 octets (32 bits). C'est-à-dire que l'information sera mémorisée sur 4 adresses.
      Dans un tableau, chaque valeur est mémorisée de manière contigüe (à la suite en mémoire). Donc le compilateur fait sans souci les décalages nécessaires pour accéder aux valeurs.

    • @askyp9102
      @askyp9102 2 роки тому

      @@formation-video merci pour votre réponse, mais pardon j'ai due mal poser ma question . Je ne parlais pas au niveau du compilateur, mais plutôt au niveau de l'exécution ( si le i est une variable, je suppose que ça n'est pas au compilateur de gérer ?) Comment le processus fait il pour savoir la longueur des valeurs d'un tableau, et donc pour faire le bon décalage ? Voilà plutôt ma question , merci à vous 😀😁

    • @formation-video
      @formation-video  2 роки тому

      Une fois le programme compilé, c'est du code machine, qui réalise donc les instructions machine adéquates, et les accès en mémoire se font via les adresses. L'ordinateur n'a plus qu'à exécuter les instructions.

  • @amidouramde2795
    @amidouramde2795 2 роки тому

    bonsoir monsieur vraiment merci pour le soutient, je peut dire que je comprend mieux avec vos explications qu'en classe. mais j'aimerai savoir quel logiciel est plus adapter en language c pour la programation. j'utilise codeblocks mais ça ne fonctionne pas normallement comme je le souhaite.

    • @formation-video
      @formation-video  2 роки тому

      Bonjour : le logiciel le plus adapté est celui que tu sais utiliser et qui répond aux besoins que tu as. Code::blocks peut être assez "vieillot" et tu pourrais tout à fait opter pour la solution éditeur de code + compilateur.
      L'éditeur (VS Code) : ua-cam.com/video/eQUsUq_2AQU/v-deo.html
      MinGW (si tu es bien sur Windows) : ua-cam.com/video/y-i96kqT53A/v-deo.html

    • @amidouramde2795
      @amidouramde2795 2 роки тому

      @@formation-video d'accord merci infiniment

    • @formation-video
      @formation-video  2 роки тому

      De rien, bonne journée 👋

  • @adri2350
    @adri2350 6 років тому +1

    Bonjour, tout d'abord merci beaucoup pour ces cours de très bonnes qualités !
    Je voulais vous poser une question, je pense avoir compris les pointeurs mais je sais jamais quand je dois m'en servir, avez-vous des conseils ?

    • @formation-video
      @formation-video  6 років тому

      Les pointeurs sont amenés à être utilisés surtout dans des fonctions quand tu dois travailler sur plusieurs données. Ca permet de ne pas avoir à passer de lourdes structures par exemple, mais simplement le pointeur pour y mener = gain de performances.
      Exemple, une fonction qui va afficher les infos du joueur, mieux vaut passer en paramètre simplement un pointeur vers le joueur en question, plutôt que toutes les infos :)

    • @adri2350
      @adri2350 6 років тому +1

      FormationVidéo Assez complexe mais merci pour votre réponse, j'essayerai de creuser un peu plus vers les pointeurs, merci.

    • @formation-video
      @formation-video  6 років тому

      De rien :)

  • @shonennoseishin8189
    @shonennoseishin8189 4 роки тому

    comment fais tu pour que sublime text te propose l'autocomplétion quand tu codes ?

    • @formation-video
      @formation-video  4 роки тому

      C'est une fonctionnalité par défaut de l'éditeur, étant donné que je n'utilise pas d'extension

  • @anxianzhang8064
    @anxianzhang8064 2 роки тому

    Bonsoir, j'ai deux questions à vous posez si on décide de faire plusieurs malloc dans des fonctions, les free() on les mets en fin de fonction ou du main ? et est ce qu'on a le droit d'utilisé 2 fois la meme varriable pour faire 2 malloc dans 2 fonction differente ? dans ce cas on devra aussi metre 2 free ?

    • @formation-video
      @formation-video  2 роки тому +1

      Bonsoir, tu vas autant d'appels à free() que tu auras fait d'allocations, au risque de te retrouver avec des fuites mémoire, même le programme une fois terminé. Pour la libération de la mémoire (appel à free), il doit être fait au plus tôt, c'est-à-dire quand ton programme n'a plus besoin de la ressource que tu as alloué 👍

    • @anxianzhang8064
      @anxianzhang8064 2 роки тому

      @@formation-video D'accors, du coup si je fais un free() dans la fonction ou je fais l'allocation, il y a plus besoin de faire dans le main ? ou bien vaux mieux aussi dans le mais pour plus de sécutité ?

    • @formation-video
      @formation-video  2 роки тому +1

      Bah non, c'est une seule fois que tu libères la ressource. De toute manière, si tu fais appel à free() sur une ressource déjà libérée, il ne se passera juste rien

    • @anxianzhang8064
      @anxianzhang8064 2 роки тому

      @@formation-video Très bien merci à vous !

    • @formation-video
      @formation-video  2 роки тому

      👍

  • @1234sasuke
    @1234sasuke 6 років тому +1

    j'adore 👍

  • @mathyslioson4882
    @mathyslioson4882 3 роки тому

    Merci bg

  • @lysander-dumbweb8465
    @lysander-dumbweb8465 4 роки тому

    C:\Users\gareth lysander\Desktop\BAIN>gcc main.c -o word
    main.c: In function 'main':
    main.c:12:14: error: 'nombrejoueurs' undeclared (first use in this function)
    scanf("%d", &nombrejoueurs);
    ^~~~~~~~~~~~~
    main.c:12:14: note: each undeclared identifier is reported only once for each function it appears in
    C:\Users\gareth lysander\Desktop\BAIN>
    bonjour j'ai un problème d'érreur vous pouver m'aidé

    • @formation-video
      @formation-video  4 роки тому +1

      C'est clairement indiqué dans l'erreur, ta variable "nombrejoueurs" est non déclarée, elle n'existe pas.

    • @lysander-dumbweb8465
      @lysander-dumbweb8465 4 роки тому

      @@formation-video j'ai tapé ce code exactement comme dans la vidéo et j'ai vérifier pour voir si il ni a pas d'érreur je te met le code
      #include
      #include
      int main(void)
      {

      int nombreJoueurs = 0;
      int *liste_joueurs = NULL;
      int i;
      printf("Combien de joueurs ? ");
      scanf("%d", &nombrejoueurs);
      liste_joueurs = malloc(sizeof(int) * nombrejoueurs);
      if(liste_joueurs == NULL)
      exit(1);
      for(i = 0 ; i < nombrejoueurs ; i++)
      {
      printf("joueur %d -> numero %d
      ", i + 1, i * 3);
      liste_joueurs[i] = i * 3;
      }
      for(i = 0 ; i < nombrejoueurs ; i++)
      {
      printf ("[%d] " , liste_joueurs[i]);
      }
      free(liste_joueurs);
      return 0;
      }

    • @formation-video
      @formation-video  4 роки тому +1

      Donc non, tu n'as pas recopié le même code. La variable que tu as déclaré s'appelle "nombreJoueurs" et la variable que tu tentes de passer au scanf() est "nombrejoueurs", ce ne sont donc pas les mêmes.

    • @lysander-dumbweb8465
      @lysander-dumbweb8465 4 роки тому

      @@formation-video oui j' ai mis un déclaration avec un majuscule et avec le scanf je les mis en minuscule ils faut que je fasse gaffe avec la déclarations que je met un grand Merci a toi jason

    • @formation-video
      @formation-video  4 роки тому

      En effet, bonne continuation et bon courage 👋

  • @marcpekoua8380
    @marcpekoua8380 6 років тому +1

    Bonsoir claire la video comme dab je kif. Dans l'exemple que tu donnes, le programmeur ne sait pas de combien d'espace il aura besoin mais par contre l'utilisateur si (cas des joueurs). Mais en admettant que l'utilisateur lui meme ne sache pas (patr exemple s'il est en train de saisir un texte compter tous les caractères c'est quasi impossible) comment pourrais je faire pour allouer l'espace necessaire exact. Merci d'avance :)

    • @formation-video
      @formation-video  6 років тому

      Bonjour, attention, quand je dis que le programme ne sait pas à l'avance combien allouer, l'utilisateur c'est la même chose. Par exemple, toi tu vas vouloir 2 joueurs, mais si un autre utilise le programme, il en voudra peut-être 10. C'est pour cela qu'il faut gérer dynamiquement (malloc/free) l'espace à utiliser en fonction de ce que souhaite l'utilisateur.
      Du coup, pour ton problème, celui d'allouer une chaîne de X caractères, il suffit simplement de demander le nombre de caractères voulus, puis de faire un malloc() de X fois le nombre de "char" qu'il faut, et voilà ;)
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+

    • @medazizbenhaha7556
      @medazizbenhaha7556 5 років тому

      @@formation-video mais dans le cas ou je sais pas combien de lettres c'est quoi la solution ?
      j'ai eu l'idée de faire l'enregistrement du texte caractere par caractere dans un fichier mais c'est pas du tout ideal

  • @user-pt5rs3fb8y
    @user-pt5rs3fb8y 6 років тому +1

    C'est pas plûtot exit(0); qu'il faut faire ? Si l'allocation dynamique a échouée

    • @formation-video
      @formation-video  6 років тому

      Renvoyer 0 ou quitter en renvoyant un code d'erreur 0 indique en informatique que tout s'est bien passé. Après, c'est une convention, l'important c'est surtout de stopper l'exécution du programme, mais tu peux bien retourner ce que tu veux. Juste qu'il est pensé de base que :
      0 -> tout s'est bien passé
      autre valeur -> une erreur est survenue

    • @user-pt5rs3fb8y
      @user-pt5rs3fb8y 6 років тому +1

      D'accord merci

    • @formation-video
      @formation-video  6 років тому

      Je t'en prie :)

    • @MP-fv8iy
      @MP-fv8iy 5 років тому

      @@formation-video Dans ce cas et par simple curiosité (malsaine ?) dans la fonction main pourrait-on replacer le return 0 par un exit(0) et passer main en void ?
      Si on utilise le return 0 c'est par convention, restriction langage, vitesse du vent , âge du capitaine... ?

  • @mesv2009
    @mesv2009 3 роки тому

    malloc(sizeof(int)*0 ; // memo est reservee ! commemt peut on expliquer ca ?!

    • @formation-video
      @formation-video  3 роки тому

      Je ne vois pas l'intérêt ici de réserver un espace de 0 octet...c'est issu de quel code ?

    • @mesv2009
      @mesv2009 3 роки тому

      @@formation-video aucun interet ! juste un test pour comprendre le mechanisme du systeme d allocation ! avec 0 l allocation est effectuee !

    • @formation-video
      @formation-video  3 роки тому +1

      En réalité non. Si tu fais une allocation mémoire d'un espace de 0, la fonction va te retourner NULL ou une adresse unique (non accessible, mais qui sera à libérer), suivant l'implémentation

  • @msieur28po37
    @msieur28po37 7 років тому +1

    Salut! En cours nous avions vu qu'il faut caster le malloc ou le calloc en un pointeur d'entier car ces deux fonctions de base retournent des void *
    En gros on a ces deux fonctions qui sont construites de cette façon:
    void * malloc(taille_octets)
    void * calloc(nb_objet , taille_octet)
    dans notre cas il faudrait écrire
    liste_joueurs = (int *) malloc(nombreJoueurs*sizeof(int))
    Dans votre vidéo on voit qu'on a pas besoin de caster, quel est donc l'intérer de la transtypation ici ?
    En tout cas, super vidéo très pédagogique :)

    • @formation-video
      @formation-video  7 років тому +2

      Coucou, ce que tu as vu en cours est une grosse erreur, que malheureusement beaucoup d'écoles font.
      Je m'explique : à l'époque, on faisait un cast des fonctions comme malloc() car il n'y avait pas de pointeur générique, et qu'en plus le type de retour était différent, du char*
      Concernant le langage C, la norme indique que le pointeur générique (void*) prend automatiquement le type de la donnée voulue, donc il est absolument inutile de faire un cast, cela pourrait même entraîner certaines erreurs.
      Par contre, si c'était du C++, là il faudrait le faire. C'est aussi pour cela que beaucoup ont pris la mauvaise habitude de le faire également en C. Donc en résumé : ne pas faire de cast en C, seulement pour C++

    • @formation-video
      @formation-video  7 років тому +2

      En gros, caster malloc() en langage C, reviendrait à faire -> int unNombre = (int)15;

  • @amaurylaperche2129
    @amaurylaperche2129 3 роки тому

    bonjour dans cette vidéo je ne comprends si liste joueur est un pointeur ou un tableau je ne sais pas si quelu'un qui passe par la peut m'expliquer merci

    • @formation-video
      @formation-video  3 роки тому

      Bonjour, la liste de joueurs est un tableau (dont la taille est fixée à l'exécution, pour correspondre au nombre de joueurs demandés par l'utilisateur)

    • @amaurylaperche2129
      @amaurylaperche2129 3 роки тому

      @@formation-video pourquoi alors l'initialise t on avec * et pas [.]

    • @formation-video
      @formation-video  3 роки тому

      Parce que ce sera un tableau dynamique (dont on ne connaît pas la taille au départ)

    • @amaurylaperche2129
      @amaurylaperche2129 3 роки тому

      @@formation-video OK merci et donc ça m'amene à ma derniere question comment le différencier d'un pointeur quand il est initialisé ?

    • @formation-video
      @formation-video  3 роки тому +2

      En fait, quand tu utilises l'étiquette (le nom de ta variable) pour ton tableau, cela se comporte comme un pointeur vers le premier élément de ce dernier. Et de là on retrouve facilement tous les autres car un tableau a toutes ses valeurs qui se suivent en mémoire.
      Ici, on ne sait pas la taille de notre tableau donc on déclare un pointeur sur entier. Ensuite, on va allouer un espace pour notre tableau. Ce pointeur va pointer non pas sur un entier isolé, mais un entier qui est le premier élément de notre tableau.

  • @MrMeloman14
    @MrMeloman14 4 роки тому

    Bonsoir Jason,
    ça fait un petit moment. non?
    Voilà, apparemment on ne peut utiliser realloc qu'une seule fois. Est-ce le cas ?
    Merci pour ta réponse. Bonne continuation.

    • @formation-video
      @formation-video  4 роки тому

      Bonsoir, comment ça qu'une seule fois ?
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @MrMeloman14
      @MrMeloman14 2 місяці тому

      @@formation-video
      Bonjour Jason,
      Oups, je n'ai jamais répondu et, j'avoue, je suis passé à autre chose ^^ . Maintenant j'ai un souci avec malloc
      Y a-t-il une limite en octets pour une allocation ? J'essaie de créer un tableau de pixels à partir d'une texture et par la suite des couleurs (SDL_Color couleurs[WIDTH*HEIGHT]) mais on dirait que celui-ci est trop important. Quand je veux afficher le résultat, je vois qu'il a fait le travail en partie. Pourtant, il compile. Est-ce que les erreurs de segmentations ne sont pas censées être signalées à la compilation (gcc) le cas échéant ? Bonne journée.

  • @souleycmr4096
    @souleycmr4096 7 років тому +1

    Salut, et merci une fois de plus tu sauves le mondes amateur et même pro en info; je suis maintenant au niveau des graphes , mais j'ai une question toute bête : s'il vous plait je peux savoir a sert de retourner les nombres, les tableaux ?

    • @formation-video
      @formation-video  7 років тому

      Coucou, je n'ai pas bien compris ce que tu cherchais à comprendre

    • @souleycmr4096
      @souleycmr4096 7 років тому +1

      salut excuse je voulais demande a quoi sert de retourner un tableau

    • @formation-video
      @formation-video  7 років тому

      Et bien, prends l'exemple d'une fonction qui trierait les éléments d'un tableau dans un ordre. Elle rendrait alors un tableau trié à partir d'un tableau en désordre qu'on lui aurait passé ;)

  • @nizarbousabat1605
    @nizarbousabat1605 4 роки тому

    question:comment le programme fait difference entre un pointeur et un pointeur sur un premier element d'un tableau dans la declaration puisque ils sont déclarés de la meme façon

    • @formation-video
      @formation-video  4 роки тому +1

      En fait, pour un tableau, on a un pointeur vers le premier élément de celui-ci. Il n'a donc pas besoin de faire de différence. Écrire par exemple -> int *tab est un pointeur vers un élément de type (int), qui est peut être isolé, ou un élément en première position d'un tableau.
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @nizarbousabat1605
      @nizarbousabat1605 4 роки тому

      @@formation-video merci pour votre reponse ♥️

  • @baselin3071
    @baselin3071 5 років тому +5

    17:00 pleonasme!😉

    • @formation-video
      @formation-video  5 років тому +1

      Oui, difficile de terminer avec une première 😂
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8

  • @blyat6308
    @blyat6308 5 років тому

    Est-ce que realloc efface les données dans la variable en question ?

    • @formation-video
      @formation-video  5 років тому

      En soi, realloc() recopie les données, sauf si le nouvel espace alloué s'en trouve plus petit que l'ancien. Mais généralement, on ré-alloue de l'espace pour en disposer davantage 😉
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne
      ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8

  • @lamassonnerie5050
    @lamassonnerie5050 4 роки тому

    Bonjour j'ai quelques question à poser. Est-il possible d'allouer dynamiquement un espace pour une variable et non pour un pointeur ? Si j'alloue un espace mémoire que je n'attribue à aucun objet ( variables ou tableau ou fonction ), pourrais-je quand même la libérer ( ou alors c'est impossible de faire ça car considéré comme une erreur ou corrigé par le compilateur ) ? Et lorsque j'ai une fuite mémoire, c'est rattrapable Ou C'est vraiment grave ??

    • @formation-video
      @formation-video  4 роки тому

      Bonjour, en fait un pointeur est une variable, à la différence qu'elle mémorise un adresse, pas une valeur. Pour une variable simple, il n'y a pas besoin d'allouer d'espace car ce sont des types primitifs qui ont déjà leur taille fixe. Ensuite, tu ne peux pas allouer un espace mémoire à rien, cela se fait forcément sur une donnée, et le contraire n'aurait absolument aucun sens.
      Enfin, une fuite mémoire n'est pas rattrapable, cela survient quand des ressources allouées n'ont pas été libérées. Même lorsque ton programme se termine, ces ressources sont toujours dans la mémoire, ce qui à terme fait saturer ton système.
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @lamassonnerie5050
      @lamassonnerie5050 4 роки тому

      @@formation-video merci beaucoup de ces réponses... mais excusez moi, je viens de tester ce code :
      #include
      #include
      int main(void)
      {
      int *ptr = malloc(sizeof(int));
      if(ptr == NULL)
      exit(1);
      *ptr = 10;
      printf("valeur = %d , adresse pointeur = %X, adresse var = %X
      ", *ptr, &ptr, ptr);
      free(ptr);
      printf("valeur = %d , adresse pointeur = %X, adresse var = %X
      ", *ptr, &ptr, ptr);
      return 0;
      }
      et ceci est imprimé :
      valeur = 10 , adresse pointeur = 61FF1C, adresse var = 672A20
      valeur = 6758728 , adresse pointeur = 61FF1C, adresse var = 672A20
      c'est normal que la valeur ait changé et que le reste ait pas changé ? je pensais que vu que je libère la mémoire, alors il n'y a pas d'adresse défini...

    • @formation-video
      @formation-video  4 роки тому

      Pour avoir un nettoyage au niveau de l'adresse, il faut affecter la valeur NULL au pointeur, donc faire :
      free(ptr);
      ptr = NULL;
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

    • @lamassonnerie5050
      @lamassonnerie5050 4 роки тому

      @@formation-video ok merci là je pense avoir tout compris !

    • @formation-video
      @formation-video  4 роки тому

      OK 👍
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
      ◾ MERCI DE TON SOUTIEN ! 🔻
      ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙
      ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
      ◾ Site web : jasonchampagne.fr
      ◾ Discord : discord.me/jasonchampagne
      ◾ Twitch : www.twitch.tv/jachampagne
      ◾ UA-cam (personnel) : ua-cam.com/users/jasonchampagne
      ◾ Twitter : twitter.com/jachampagne8
      ◾ Facebook : facebook.com/jachampagne8
      ◾ Instagram : instagram.com/jachampagne8
      ◾ Snapchat : www.snapchat.com/add/jachampagne8
      ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

  • @esaiesaint-fleur4510
    @esaiesaint-fleur4510 Рік тому

    Autre question puis je allouer dans une fonction puis liberer dans une autre fonction, du genre je le fais pas dans la meme fonction

    • @formation-video
      @formation-video  Рік тому

      Oui bien sûr, l'objectif dans tous les cas est que ce qui a été alloué est libéré quand on n'en a plus besoin 👍

  • @momotounsi93
    @momotounsi93 7 років тому

    Bonjour,
    merci beaucoup pour tes vidéos, je suis en formation concepteur développeur je ne comprenais pratiquement rien au langage C jusqu'à ce que je tombe sur tes vidéos qui m'ont redonné espoir! J'aurais quelques questions concernant celle-ci:
    1) Quand tu utilises le calloc pour la taille ce n'est pas : nombreJoueurs * sizeof(int) ??
    2) Pourquoi pour la fonction calloc tu utilises la donnée "nombreJoueurs" et pour la fonction realloc tu utilises la donnée "liste_joueurs"?
    3) Il y a aussi une chose que je ne comprends pas quand tu utilises le calloc et le malloc à 16:37! Quand tu utilises le malloc, pour les deux premiers joueurs tu dis que ça met des valeurs par défaut parce qu'il prend des emplacements qui avaient déjà des valeurs dedans! Donc en fait l'allocation dynamique ça permet d'allouer dynamiquement une zone mémoire libre mais pas forcément vide, c'est ça?

    • @formation-video
      @formation-video  7 років тому

      Bonsoir :).
      1) Non, car autant malloc() ne prend qu'un seul paramètre (la taille en octets que l'on veut allouer), autant calloc() prend les deux paramètres séparément - l'un étant le nombre d'éléments à allouer, l'autre la taille de ces éléments). Pour cela que je fais donc -> *calloc(nombreJoueurs, sizeof(int))*
      2) Alors cela vient de la signature des fonctions. Pour malloc()/calloc(), on demande le nombre d'éléments et la taille de chacun d'eux. En revanche, pour la fonction realloc(), on demande directement un pointeur et la taille que l'on va allouer pour cette ré-allocation.
      3) Oui voilà, il va te réserver en mémoire des zones qui ne sont pas (ou plus utilisées) ailleurs. Donc ça peut parfois tomber sur des emplacements qui ont déjà servi. D'où la nécessité de les initialiser, ou de leur affecter rapidement des valeurs voulues pour éviter de se retrouver avec n'importe quoi.

    • @momotounsi93
      @momotounsi93 7 років тому +1

      Parfait, très clair! Merci beaucoup pour ces précisions :)

    • @formation-video
      @formation-video  7 років тому

      De rien ;)

  • @bot-y1728
    @bot-y1728 Рік тому

    Bonjour, tout d'abord un grand merci pour toutes videos, tu es tres pedagogue et tu as un reel talent pour ca et je t'en remercie. J'ai une petite question lol, si malloc a echoué il faut sortir du programme avec exit(1), or j'ai pu voir sur un cours de openClassRoom qu'il fallait ecrire exit(0) ... et avant de te poser la question je l'ai posé a ChatGPT, qui me dit qu il faut ecrire : exit(EXIT_FAILURE), pourrais tu m'eclairer ? Les 3 solutions sont-elles valables et surtout pourquoi ???? hahaha . Merci encore pour tout ce que tu fais. Cordialement,

    • @formation-video
      @formation-video  Рік тому +1

      Bonjour,
      D'abord, tu devrais éviter le cours OpenClassrooms qui n'est clairement plus à jour et bourré d'erreurs signalées maintes fois par des internautes, et non corrigées depuis.
      Ensuite, par convention il est d'usage avec les codes de retour, d'utiliser le 0 quand tout s'est bien passé, et toute autre valeur en cas d'erreur. De ce fait, quitter le programme en retournant 0 laisse croire qu'il a quitté sans erreurs. Or si l'appel à malloc() ne parvient pas à allouer de l'espace en mémoire, c'est un cas d'erreur.
      Ensuite, EXIT_FAILURE est une constante, c'est aussi valide et utilisable, et cela correspond à...la valeur 0. Cette constante (comme son opposé EXIT_SUCCESS) fait partie de l'entête stdlib.h
      Donc, tu peux au choix utiliser une valeur numérique comme 0, ou la constante EXIT_FAILURE 👍

    • @bot-y1728
      @bot-y1728 Рік тому

      @@formation-video Ok c'est noté, merci beaucoup pour ta reponse.

    • @formation-video
      @formation-video  Рік тому +1

      👋

  • @kybajames3419
    @kybajames3419 3 роки тому

    Bonsoir j'espère que vous allez bien
    J'ai des difficultés avec l allocation dynamique au niveau de la syntaxes en effet lorsque j écrit int *tab et que j j'utilise malloc pour l'allocation dynamique un message d erreur s'affiche (assigning to 'int *' from incompatible Type 'void *') je ne comprend pas merci de me répondre car ce problème me bloque dans mon apprentissage de langage c

    • @formation-video
      @formation-video  3 роки тому

      Bonsoir, quel est ton code ?

    • @kybajames3419
      @kybajames3419 3 роки тому

      @@formation-video j'ai fait comme dans la vidéo

    • @formation-video
      @formation-video  3 роки тому

      Si c'était le cas, cela fonctionnerait

    • @kybajames3419
      @kybajames3419 3 роки тому

      @@formation-video ok voici la syntaxes :
      #include
      #include
      int main ()
      {
      int notes;
      int *tab= NULL;
      int i;
      printf ("combien de notes avez vous ?
      ");
      scanf ("%d",¬es);
      tab = malloc(notes * sizeof(int));
      if (tab==NULL)
      {
      exit(1);
      }
      for (i=0; i

    • @formation-video
      @formation-video  3 роки тому +1

      OK, alors cela vient de ton affichage, tu as un "&" de trop dans ton printf(). Aussi, tu as oublié le "void" dans les parenthèses de la fonction main() - un code corrigé : pastebin.com/KUxEcNga

  • @adelk3719
    @adelk3719 11 місяців тому

    super video merci beaucoup ! 🐐
    je voulais savoir que si on ne sait pas combien de joueur vont rejoindre la partie( c a d combien ajouter au realoc) est ce qu on peu maloc le realoc
    je sais pas trop si tu a compris ce que je voulais dire c dit un peu bizarrement mais voila

    • @formation-video
      @formation-video  11 місяців тому

      Oui, realloc() sert à cela, si tu dois ajouter un nouveau joueur en cours de partie alors que tu as déjà alloué l'espace il suffit de réallouer avec un espace plus grand et suffisant pour accueillir le nouveau 👍

  • @mirakle9375
    @mirakle9375 Рік тому

    Bonne vidéo! Juste une précision : sizeof n'est pas une fonction, mais un opérateur. Une fonction ne pourrait pas prendre en paramètre un type. Aussi, contrairement aux fonctions, la valeur de sizeof est évaluée au stade de compilation (à moins qu'on l'utilise sur un tableau dynamique depuis C99).

  • @momobabo50
    @momobabo50 6 років тому +1

    Salut est ce que je peux utiliser malloc pour des tableaux a 2 dimmension?
    Si oui comment ?

    • @formation-video
      @formation-video  6 років тому

      Bonsoir. Oui tu peux, en allouant d'abord le nombre de lignes du tableau, et pour chaque ligne, le nombre de colonnes, pour avoir tes 2 dimensions. Il faudra donc utiliser des boucles, et bien penser à libérer la mémoire aussi avec des free(), en usant d'une boucle également bien sûr.
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- Jason CHAMPAGNE - jasonchampagne.fr
      +---------------------------------------------------------------------------------------------------------------------------------------------+
      |- COUCOU, TU VEUX :
      |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne
      |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne
      |--- T'abonner à mon autre chaîne UA-cam ? ua-cam.com/users/jasonchampagne
      |--- Me follow sur Twitter ? twitter.com/jachampagne8
      |--- Liker la page Facebook ? facebook.com/jachampagne8
      |--- Me follow sur Insta ? instagram.com/jachampagne8
      |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8
      +---------------------------------------------------------------------------------------------------------------------------------------------+