Structure C

Structure C - C - Programmation

Marsh Posté le 01-12-2011 à 12:19:36    

Bonjour à tous,
j'ai une petite question par rapport à un pointeur vers structure:
voila j'ai une structure: struct li_line
 
et un pointeur vers cette structure:struct li_line *carte;
 
En faite je fait une boucle pour lister le contenu de cette structure ligne par ligne:
     
il m'affiche pas d'erreur mais lors de la compilation ça plante.j'ai un problème avec ma boucle!
quelqu'un peut m'aider svp?


Message édité par filoo85 le 02-12-2011 à 10:00:14
Reply

Marsh Posté le 01-12-2011 à 12:19:36   

Reply

Marsh Posté le 01-12-2011 à 12:45:28    

On voudrait surtout voir comment sont faites les allocations mémoires pour ta structures et ses champs...
Parce que si card pointe vers une zone mémoire qu'on prétend être une struct line, encore faut il que cette zone mémoire ait été allouée...
Autre petite remarque, autant passer par un typedef une bonne fois pour toute à la définition de line, et ne plus se coltiner des struct line ensuite.
 
A+,


Message édité par gilou le 01-12-2011 à 12:45:43

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 01-12-2011 à 13:08:54    

En fait le problème est que si je fait carte->li_linenum, ça marche est m'affiche les valeurs.
mais si je rajoute le i, la ça ne marche pas, est ce que ma syntaxe est est correcte card[i].li_linenum.


Message édité par filoo85 le 02-12-2011 à 10:00:33
Reply

Marsh Posté le 01-12-2011 à 13:18:48    

J'avais pas fait attention à ça.
Ben tu définis un tableau de struct line quelque part, pour que tu puisses employer une notation de tableau?
 
card->li_linenum ca marche parce que tu as alloué (statiquement) line et que card pointe dessus.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 01-12-2011 à 13:21:58    


En fait moi ce que je veux c'est afficher card->li_linenum pour chaque tour de boucle mais je n'arrive pas.


Message édité par filoo85 le 01-12-2011 à 15:36:24
Reply

Marsh Posté le 01-12-2011 à 14:00:15    

Citation :

En fait moi ce que je veux c'est afficher card->li_linenum pour chaque tour de boucle mais je n'arrive pas.

Chaque tour de boucle de quelle boucle? nulle part ici tu n'as défini une structure sur laquelle on puisse boucler.
 
Il faudrait peut être que tu prennes un bouquin d'introduction au C et potasse un peu les bases, parce que manifestement, tu ne comprends pas ce que tu fais, et en informatique, le code vaudou, c'est la plus mauvaise approche. On perd du temps a faire marcher par essais successifs un code qu'on ne comprend pas.
Tu as écrit:
for(i = 0; i < sizeof(struct line); i++)
Et la test d'arrêt i < sizeof(struct line) montre que tu comprends pas ce que tu écris, sinon, tu n'aurais pas écrit cela.
Il vaudrait donc mieux que tu potasses en C:
1) ce qu'est un pointeur et comment on alloue de la mémoire pour faire pointer un pointeur dessus
2) ce qu'est un tableau  
Et quand tu auras vu ces deux notions,  
3) ce qu'est une liste chaînée, puisque manifestement c'est ce que ta structure line semble nécessiter.
 
A+,


Message édité par gilou le 01-12-2011 à 14:01:57

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed