CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

question de C sur malloc

iscario
iscario
Niveau 7
21 avril 2009 à 16:55:22

Bonjour,

petite question toute simple : que se passe-t-il très simplement lorsque j'écris ca :

pFutureMaille = (T_Maille *) malloc (sizeof(T_Maille));

C'est pour optimiser la gestion de l'espace mémoire :question:
Car on peut faire tourner le programme sans cette ligne, donc j'ai un doute :doute:

merci

godrik
godrik
Niveau 30
21 avril 2009 à 17:43:13

malloc reserve sizeof(T_Maille) octets en memoire et renvoyant un pointeur vers l'adresse reserve.

"C'est pour optimiser la gestion de l'espace mémoire :question: "
non, c'est pour utiliser de l'espace memoire alloue sur le tas. Ou encore allouer de l'espace a l'execution du programme et pas a son ecriture.

"Car on peut faire tourner le programme sans cette ligne, donc j'ai un doute :doute: "
Ce dont je doute c'est que tu puisse le faire tourner sans. Si tu n'alloue pas de memoire, c'est que ton pointeur ecrit dans une zone aleatoire en memoire. Peut etre la ou il y a les donnes d'une autre variable auquel cas tu les ecrases et tu pollus l'autre variable ou alors tu ecris dans une zone non alloue de la memoire auquel cas tu provoque une erreur de segmentation (le programme plante.)

chris_27
chris_27
Niveau 10
21 avril 2009 à 20:17:18

« Car on peut faire tourner le programme sans cette ligne » :d) oui, mais si tu essaies d'utiliser le pointeur, tu vas faire un joli segfault, tu sais, quand windows te dit que le programme a quitté inopinément et qu'il te demande s'il faut envoyer un rapport à microsoft... :-)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment