Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2125 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Des listes en C..

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Des listes en C..

n°2146049
Layly
Posté le 16-06-2012 à 13:25:43  profilanswer
 

Bonjour!
 
Je travaille actuellement sur un projet en C consistant à créer un petit jeu de nim (sous forme de damier).
Bref, nous devons donc travailler avec des listes et pointeurs.
 
J'ai crée une fonctions permettant d'afficher la liste des cases adjacentes d'un pion donné sauf que voilà j'ai un petit soucis.
Tout se compile parfaitement, mais plantage complet à l'exécution. J'ai donc truffé le code de balises pour localiser et voilà ce qui en sort :
 
http://img826.imageshack.us/img826/7941/listes.jpg
 
Uploaded with ImageShack.us
 
Voici la structure de la liste :

Code :
  1. #ifndef TYPE_LISTE
  2. #define TYPE_LISTE
  3. struct cellule
  4.   { int li,co;
  5.     struct cellule * suivant;
  6.   };
  7. typedef struct cellule Cellule;
  8. typedef Cellule * Liste;
  9. #endif


 
En fait, je ne fais qu'allouer de la mémoire pour une variable de type liste et voilà que le champ li contient par défaut une valeur..
En regardant des exos déjà fait, je vois qu'on peut simplement déclarer :
Liste L;
ou encore :
Liste L=NULL;
 
Seulement j'ai essayé, là le programme plante instantanément.
Je ne comprends pas...
 
Si vous pourriez m'apporter des précision à ce sujet, je vous en serai reconnaissante!
Merci d'avance

mood
Publicité
Posté le 16-06-2012 à 13:25:43  profilanswer
 

n°2146051
gilou
Modérateur
Modzilla
Posté le 16-06-2012 à 13:33:00  profilanswer
 

Vu que le bout de code que tu montres en image n'est pas l'endroit ou ça plante, que l'on n'a pas ton code, et que nos boules de cristal n'ont pas la puissance nécessaire, il n'est pas possible de te dire les raisons du plantage.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2146055
Layly
Posté le 16-06-2012 à 14:49:27  profilanswer
 

Non mais dans ce cas là ce ne plante pas, je voudrais juste savoir pourquoi en créant juste une variable de type Liste, il y a dans le champ li une valeur..

n°2146061
gilou
Modérateur
Modzilla
Posté le 16-06-2012 à 17:13:11  profilanswer
 

Ça veut dire quoi pour toi "en créant juste une variable de type Liste"?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2146062
Layly
Posté le 16-06-2012 à 17:15:27  profilanswer
 

Liste L=(Liste)malloc(sizeof(Cellule));
Ce qu'il y a sur le screen

n°2146066
gilou
Modérateur
Modzilla
Posté le 16-06-2012 à 19:21:37  profilanswer
 

Eh bien ton malloc associe une zone mémoire à L, en lui donnant la valeur de l'adresse de cette zone mémoire.
Mais cette zone mémoire est donnée en l'état, les octets dedans ont déjà des valeurs, et ça va induire des valeurs pour les champs de ta cellule.
Pour pallier à cela, après allocation,  
- soit tu met à 0 (ou une valeur de convention) tes champs
- soit tu utilises calloc, qui  met à 0 les octets de la zone allouée
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2146068
Layly
Posté le 16-06-2012 à 20:24:19  profilanswer
 

D'accord, merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Des listes en C..

 

Sujets relatifs
Developpement d'un jeu sous udk (C++)reception INT de C vers Java problématique
[VB.NET] Appel d'une DLL écrite en C++C++ Builder 6 - Utiliser une liste déroulante
[C] Aide pour petit exo 2[C] Aide pour petit exo
[C/SDL] Rotation Image/PositionnementWrapper C++ avec SWIG
listes C 
Plus de sujets relatifs à : Des listes en C..


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR