Encore un défi pour les pro du C
wapin
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
ali_camarche Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
ali_camarche Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Un nouveau pb pour les accroc au c:
nous essayons de faire une liste chainé qui a 2 type de valeur:
On doit entrer un entier étant le numéro de ligne et un tableau de caractere com étant
la ligne de commande.
Ex: 10 testdelignedecommande. 10 étant le num de ligne et testdelignedecommande la commande
la déclaration de structure de la liste chainé:
typedef struct commande
{ int no_ligne;
char ligne[COMMAND_MAX];
}commande;
typedef struct ARBRE {
commande valeur;
struct ARBRE *filsd;
}arbre;
Pour entrer des valeur a l'initialisation par exemple on fait:
void InitArbre(arbre *a){
a -> valeur.no_ligne = 20;
a -> valeur.ligne[COMMAND_MAX] = "r";
a -> filsd = NULL;
}
Ceci est un test pour vérifier si nos valeurs sont enregistré dans l'arbre.
lorsqu'on test, la valeur 20 est bien enregistré ds l'arbre mais pas "r".D'où le souci....
Il doit certainement y avoir un probleme d'adresse pour l'arbre.
Si vous avez une correction dans la syntaxe a me suggérer vous serez le bienvenue.
A+
PS:Merci pour ceux qui on répondu à mes précédent msg.
nous essayons de faire une liste chainé qui a 2 type de valeur:
On doit entrer un entier étant le numéro de ligne et un tableau de caractere com étant
la ligne de commande.
Ex: 10 testdelignedecommande. 10 étant le num de ligne et testdelignedecommande la commande
la déclaration de structure de la liste chainé:
typedef struct commande
{ int no_ligne;
char ligne[COMMAND_MAX];
}commande;
typedef struct ARBRE {
commande valeur;
struct ARBRE *filsd;
}arbre;
Pour entrer des valeur a l'initialisation par exemple on fait:
void InitArbre(arbre *a){
a -> valeur.no_ligne = 20;
a -> valeur.ligne[COMMAND_MAX] = "r";
a -> filsd = NULL;
}
Ceci est un test pour vérifier si nos valeurs sont enregistré dans l'arbre.
lorsqu'on test, la valeur 20 est bien enregistré ds l'arbre mais pas "r".D'où le souci....
Il doit certainement y avoir un probleme d'adresse pour l'arbre.
Si vous avez une correction dans la syntaxe a me suggérer vous serez le bienvenue.
A+
PS:Merci pour ceux qui on répondu à mes précédent msg.
A voir également:
- Encore un défi pour les pro du C
- Clé windows 10 pro 64 bits gratuit - Guide
- Cool edit pro - Télécharger - Édition & Montage
- Ccleaner pro gratuit - Télécharger - Optimisation
- Redmagic 10 pro test - Accueil - Téléphones
- I14 pro max - Accueil - Guide téléphones
3 réponses
"ligne" est une chaîne [un tableau] de caractères, donc utiliser "strcpy".
Quelle idée d'appeler "Arbre" ce qui n'est qu'une "liste chaînée" ?
Un conseil pour rendre les mécanismes d'accès réutilisables : séparer les données (ici de structure "commande") de la structure de stockage (ici liste chaînée) en remplaçant, dans cette dernière, la donnée par un pointeur !
Quelle idée d'appeler "Arbre" ce qui n'est qu'une "liste chaînée" ?
Un conseil pour rendre les mécanismes d'accès réutilisables : séparer les données (ici de structure "commande") de la structure de stockage (ici liste chaînée) en remplaçant, dans cette dernière, la donnée par un pointeur !
Bonjour
Pour moi je pense que tu as une fausse instruction qui est :
(a -> valeur.ligne[COMMAND_MAX] = "r";), dans ce cas wapin le "r"
sera ressu par la case "COMMAND_MAX" qui est un debordement car
l'indice de la derniere case de "ligne" est "COMMAND_MAX-1", alors je
te conseil de la remplace par :
a -> valeur.ligne = "r";
Salut, et bon courage.
Ali.
Pour moi je pense que tu as une fausse instruction qui est :
(a -> valeur.ligne[COMMAND_MAX] = "r";), dans ce cas wapin le "r"
sera ressu par la case "COMMAND_MAX" qui est un debordement car
l'indice de la derniere case de "ligne" est "COMMAND_MAX-1", alors je
te conseil de la remplace par :
a -> valeur.ligne = "r";
Salut, et bon courage.
Ali.