C > Chaîne de caractères variable & fonctions
Fermé
Bill_Bockay
Messages postés
5
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012
-
Modifié par Bill_Bockay le 21/05/2012 à 22:15
Bill_Bockay Messages postés 5 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 22 mai 2012 - 22 mai 2012 à 13:12
Bill_Bockay Messages postés 5 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 22 mai 2012 - 22 mai 2012 à 13:12
A voir également:
- C > Chaîne de caractères variable & fonctions
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Plus de chaine tv - Guide
6 réponses
Xerium
Messages postés
80
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
13 avril 2016
1
21 mai 2012 à 22:50
21 mai 2012 à 22:50
Je crois que j'avais déjà eu des erreurs avec des pointeurs dans un "switch". Je ne suis vraiment pas sûr du résultat, mais essaye de remplacer le switch par des "if" pour voir.
Bill_Bockay
Messages postés
5
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012
21 mai 2012 à 23:07
21 mai 2012 à 23:07
Hélas, j'ai déjà tenté de voir si le problème provenait d'un switch farceur mais ce n'est pas le cas.
En fait le compileur me signale que le problème vient de la fonction lorsqu'elle est appelée dans le programme principal.
C'est les guillemets qu'il ne supporte pas... ;)
Je pense que c'est un problème d'un pointeur, d'un tableau, d'une variable mal dimensionnée, mais je ne parviens pas à en trouver la cause.
En fait le compileur me signale que le problème vient de la fonction lorsqu'elle est appelée dans le programme principal.
uart_string(wifi , "CHAINE");
C'est les guillemets qu'il ne supporte pas... ;)
Je pense que c'est un problème d'un pointeur, d'un tableau, d'une variable mal dimensionnée, mais je ne parviens pas à en trouver la cause.
Bill_Bockay
Messages postés
5
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012
21 mai 2012 à 23:13
21 mai 2012 à 23:13
En posant la question différemment, comment faire pour mettre une chaîne de caractères dans le tableau de ma fonction et l'envoyer par le printf(); planqué dans mon uart_string(); ?
Xerium
Messages postés
80
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
13 avril 2016
1
Modifié par Xerium le 21/05/2012 à 23:22
Modifié par Xerium le 21/05/2012 à 23:22
Tu as essayé de débuguer ? Et il y a deux points que je n'arrive pas à comprendre :
1) len0 n'est pas initialisée mais tu l'utilises dans ton "for"
2) d'après ce que j'ai compris, ta boucle "for" initialise len1 à 0, et tant que len1 est supérieur ou égal à len0 (qui comme dit précédemment ne me paraît pas initialisé), len1 est incrémenté
Si j'ai mal compris/vu quelque chose, alors tu m'excuseras ;)
EDIT : ça ne serait pas plutôt printf("%c",str[len1]); au lieu de printf("%s",str[len1]); ?
1) len0 n'est pas initialisée mais tu l'utilises dans ton "for"
2) d'après ce que j'ai compris, ta boucle "for" initialise len1 à 0, et tant que len1 est supérieur ou égal à len0 (qui comme dit précédemment ne me paraît pas initialisé), len1 est incrémenté
Si j'ai mal compris/vu quelque chose, alors tu m'excuseras ;)
EDIT : ça ne serait pas plutôt printf("%c",str[len1]); au lieu de printf("%s",str[len1]); ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bill_Bockay
Messages postés
5
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012
22 mai 2012 à 12:10
22 mai 2012 à 12:10
Merci beaucoup pour ta réponse. Alors j'initialise len0 au début de ma fonction.
printf("%c",str[len1]); et printf("%s",str[len1]); sont utilisés pareil puisque j'envoie les caractères de ma chaîne un à un dans ma boucle for. Mais oui, du coup tu as raison, c'est plus propre avec le %c ;)
Au passage j'ai vu que je me suis emmellé les pinceaux dans ma boucle for, c'est len0 qui doit s'incrémenter jusqu'à qu'il soit supérieur ou égal à len1.
Mais le problème, je pense, viens de l'appel de ma fonction, une mauvaise définition de la variable dans laquelle la chaine doit être stockée?
Merci
printf("%c",str[len1]); et printf("%s",str[len1]); sont utilisés pareil puisque j'envoie les caractères de ma chaîne un à un dans ma boucle for. Mais oui, du coup tu as raison, c'est plus propre avec le %c ;)
Au passage j'ai vu que je me suis emmellé les pinceaux dans ma boucle for, c'est len0 qui doit s'incrémenter jusqu'à qu'il soit supérieur ou égal à len1.
Mais le problème, je pense, viens de l'appel de ma fonction, une mauvaise définition de la variable dans laquelle la chaine doit être stockée?
Merci
Bill_Bockay
Messages postés
5
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012
22 mai 2012 à 13:12
22 mai 2012 à 13:12
C'est tout bon, j'ai résolu le problème en utilisant une fonction qui permet de stocker automatiquement les chaînes de caractères dans la RAM du PIC et qui résout dans les maux de la terre, enfin, les miens ;)
Magique!
#device PASS_STRINGS=IN_RAM
Magique!