a l'aide c petit mais c faux et je ne trouve pas - C - Programmation
Marsh Posté le 02-01-2005 à 23:24:34
[Merci d'utiliser les tags 'code' ou 'cpp' (boutons [Fixe] ou [C/C++]]
minimoke a écrit :
|
Manque la définition de swap().
Marsh Posté le 02-01-2005 à 23:25:28
void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
Marsh Posté le 02-01-2005 à 23:29:12
minimoke a écrit : je pense pas que c ca |
C'est quoi
put_in_begin(...) ? |
Ce serait mieux de poster du code qui compile plutôt que "un truc du genre " ...
Marsh Posté le 02-01-2005 à 23:29:28
ben oui normalement ca pose pas de probleme
Marsh Posté le 02-01-2005 à 23:35:28
typedef struct liste_s
{
int val1;
int val2;
int tab[6];
char op;
struct liste_s *next;
} *liste;
void put_in_liste(liste *begin,
int val1,
char op,
int val2,
int *tab)
{
liste elem;
int i;
if (val1 < val2)
swap(&val1, &val2);
elem = malloc(sizeof (elem));
elem->val1 = val1;
elem->val2 = val2;
elem->op = op;
for (i = 0;i < 6;i++)
elem->tab[i] = tab[i];
elem->next = *begin;
*begin = elem;
}
void init(liste *tab, int *val, int index)
{
liste elem;
int *myval;
int i;
myval = duptab(val, 6);
myval[index] = 0;
put_in_liste(&tab[index], val[index], 0, 0, myval, tab);
free(myval);
}
int main(int ac, char **av)
{
liste *tab;
int *val;
int i;
tab = malloc(1000 * sizeof(liste));
val = test_entree(ac, av); // recupere 6 valeurs entree en param ca marche
for(i = 0;i < 6;i++)
init(tab, val, i);
return (0);
}
Marsh Posté le 02-01-2005 à 23:46:35
[Les balises code. Deuxième édition... Lire les regles du forums, merci...]
minimoke a écrit : <du code> |
Gni ?
|
C'est si compliqué que ça de poster un code complet ? Qui me dit que le problème n'est pas dans le code que tu ne fournis pas ?
Marsh Posté le 02-01-2005 à 23:54:02
minimoke a écrit : ben oui normalement ca pose pas de probleme |
ah, bon, dans ce cas tu n'alloues jamais d'espace pour des 'struct list_s' mais que pour des pointeurs. A toi de voir. Mais comme le dit Emmanuel, c'est pas la peine d'aller plus loin si tu donnes quelque chose qui ne compile même pas.
Marsh Posté le 02-01-2005 à 23:59:35
http://minimoke.free.fr/test/test.c
voila un truc qui compile.
Sinon je nai pas besoin d'allouer de l'espace pour une structure car je definie que des liste donc elles sont definie par un pointeur.
Marsh Posté le 03-01-2005 à 00:18:38
minimoke a écrit : http://minimoke.free.fr/test/test.c |
|
Je veux bien aider, mais j'aime pas qu'on se foute de moi.
Bonsoir.
Marsh Posté le 03-01-2005 à 00:23:32
ben c bon c juste que les fonctions sont dans le desordres ca compile si tu veut tu peux rajouter les definitions des fonctions pour enlever les warnings mais la n'est pas le probleme. le seul truc qu g oublier d'enlever c le ", tab" dans put_in _liste
Marsh Posté le 03-01-2005 à 00:26:37
g fait ca vite fait car j'allais pas balancer 10 tones de codes donc excuser moi pour les oubli d'include mais je voudrais juste savoir ce qu'il cloche dans ma fonction put_in_liste et je ne trouver pas necessaire de vous envoyer tout le code
Marsh Posté le 03-01-2005 à 01:39:42
oui en fait je doit coder le compte est bon avec un graphe
de ce genre (tableau de liste)
Marsh Posté le 03-01-2005 à 01:40:19
g tout fait sauf qu'il y a juste ce probleme a regler
Marsh Posté le 03-01-2005 à 01:49:17
Je pige pas tous ton code mais cette ligne tes sur qu'elle est necessaire ?
Code :
|
Le dernier element de ta liste doit avoir next qui pointe vers NULL non?
Ca fait un peu boucle ton truc
Et Taz a raison met ton code sur le forum avec les balise !
Marsh Posté le 03-01-2005 à 01:51:55
je parle pas de ça bordel : je parle que quand on écrit
# elem = malloc(sizeof (elem));
# elem->val1 = val1;
# elem->val2 = val2;
on a alloué un struct s_list * et pas un struct s_list donc ça part dans le décors
voir mon premier post
Marsh Posté le 03-01-2005 à 01:55:25
oauis spa faux ton truc là
C'est Emmanuel Delahaye qui rale pour le code en faite
Marsh Posté le 03-01-2005 à 09:15:23
oups merci taz.
C ce que je me suis dit ce matin dans mon lit j'y ai repencer.
Marsh Posté le 02-01-2005 à 23:21:51
bon je vous explique vite g une structure liste comme suit :
typedef struct liste_s
{
int val1;
int val2;
int tab[6];
char op;
struct liste_s *next;
} *liste;
dans mon main g un truc du genre
liste *t;
t = malloc(1000 * sizeof(liste));
for (i = 0;i < 6;i++)
put_in_begin(&t[i], valeur, 0, 0, tableau)
le probleme c que je n'ai pas les bonnes valeurs apres la fonction et g remarque avec gdb que ma fonction put_in_liste initialise comme il faut t[i] mais elle modifie aussi t[i - 1]. donc a la fin seul le dernier element i passer dans put_in_liste c a dire t[5] a les bonnes valeurs
j'ai chercher, peut etre mal mais je n'ai toujours pas trouve l'erreur.
merci de votre aide...
void put_in_liste(liste *begin,
int val1,
char op,
int val2,
int *tab)
{
liste elem;
int i;
if (val1 < val2)
swap(&val1, &val2);
elem = malloc(sizeof (elem));
elem->val1 = val1;
elem->val2 = val2;
elem->op = op;
for (i = 0;i < 6;i++)
elem->tab[i] = tab[i];
elem->next = *begin;
*begin = elem;
}
---------------
____