begin process at 2012 05 29 04:52:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Fonction erreur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction erreur

lundi 1 mai 2006 à 17:09:48 | Fonction erreur

logant83

Bonsoir, voila alors j'essay de faire retourner a ma fonction 'char *splitnick(char *mot)"' une valeur char (logique je sais) mais voila dés que je compile j'ai le message '[Warning] address of local variable `nick' returned '

Alors voila mon code:

char *splitnick(char *mot)
{
            char nick[1000];
            int x = 0;
            int y = 0;
            char autre[1];
            while(mot[x] != '\0')
{
               autre[y]=mot[x];
               if (strcmp(autre,"\\") == 0) {  strncat(nick, "\\\\",2); x++;  continue;  }
               strncat(nick, autre,1);
               x++;
            }
            return nick;
}

Vous avez une idée?
lundi 1 mai 2006 à 17:54:40 | Re : Fonction erreur

Pitchikwow

Salut,
Tu essais de retourner un tableau, alors que ta fonction retourne un char*.
Un truc pas très génial. Converti ton tableau en char * ou utilise ça "return &nick[0];"
Tu vas compiler sans problème. La meilleur solution est la suivante.
char *splitnick(char *mot)
{
            char nick[1000];
            char* chaineARetourner;
            //Initialise ma variable à l'adresse de base du tableau
            chaineARetourner = &nick[0];
            
            int x = 0;
            int y = 0;
            char autre[1];
            while(mot[x] != '\0')
{
               autre[y]=mot[x];
               if (strcmp(autre,"\\") == 0) {  strncat(nick, "\\\\",2); x++;  continue;  }
               strncat(nick, autre,1);
               x++;
            }
            return chaineARetourner ;
}
Voila a+.

 
   
lundi 1 mai 2006 à 18:03:06 | Re : Fonction erreur

Pitchikwow

Resalut,
J'oubliais ton programme est bugger.
La solution donnée est juste mais ne résout pas ton prog.
a+

lundi 1 mai 2006 à 18:12:49 | Re : Fonction erreur

yoyo269

Membre Club
Ou alors déclare nick en static :
static char nick[1000];
Je pense tout de même que la solution de pitchikwow est meilleure.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

lundi 1 mai 2006 à 18:14:30 | Re : Fonction erreur

logant83

jvien juste de trouver la solution, le seul probléme que j'avai c'est que javais déclaré ma variable a retourner dans la fonction donc ct une valeur local mais en la déclarant a l'extérieur de la fonction , j'en est fait une valeur global, donc plus aucun probléme a la compilation.

merci quand meme.
lundi 1 mai 2006 à 18:15:24 | Re : Fonction erreur

luhtor

Pitchikwow => ton truc, c'est comme le sien. C'est plantage ...

Vous retournez l'adresse d'une variable locale ... qui donc est supprimée a la fin de la fonction. Donc votre adresse elle pointe sur rien du tout.

Faut pas faire un schéma de fonction, mais de procédure.
void splitnick(char *mot, char *target);

Tu alloues la place nécessaire avant l'appel de la fonction et tu passes le buffer en argument.
Soit ca, soit tu utilises l'allocation dynamique. Mais, c'est pas terrible car faudra penser a libérer l'espace occupé.




lundi 1 mai 2006 à 18:17:42 | Re : Fonction erreur

luhtor

Ou tu fais une solution dégueulasse avec une variable globale...
lundi 1 mai 2006 à 18:18:49 | Re : Fonction erreur

logant83

En conclusion sa donne sa:

char nicks[10000];

char *splitnick(char *mot)
{
            *nicks = '\0';
            int x = 0;
            int y = 0;
            char autre[1];
            while(mot[x] != '\0')
{
               autre[y]=mot[x];
               if (strcmp(autre,"\\") == 0) {  strncat(nicks, "\\\\",2); x++;  continue;  }
               strncat(nicks, autre,1);
               x++;
            }
            return nicks;
}
lundi 1 mai 2006 à 18:24:37 | Re : Fonction erreur

logant83

luthor, oué sa fait dégeulasse mais sa marche plutot bien je trouve :xD
lundi 1 mai 2006 à 18:27:04 | Re : Fonction erreur

luhtor

Mais le fait de trouver qu'une chose marche bien n'en fait pas pour autant une bonne chose.



1 2

Cette discussion est classée dans : fonction, erreur, mot, nick, char


Répondre à ce message

Sujets en rapport avec ce message

prob tableau de pointeurs [ par fred111111 ] ben voila , j'ai un petit souci pour un prog que je dois réaliser pour un cours. Il s'agit en fait d'un pendu, avec un dictionnaire contenu dans un fi Quelle est cette erreur __w64 ? [ par themaste ] Bonjour à tous!Je suis en train de faire un programme, que j'avais fais sous dos avant.Puisque ca marchait, je l'ai repris pour faire une application probleme avec une fonction de jointure des éléments de liste [ par cyrina84 ] bonjour à tous, j'ai un gros probleme dans ma fonction en Ccette fonction pren en entrée une liste chainée qui contient des couples de mots (exemple: souci en batch [ par zut69 ] Bonsoir,J'utilise des fichiers batch pour automatiser de longues manipulation dans cmd.exeCependant, j'ai un souci quand certaine fonction me demande erreur de segmentation [ par freekid ] Bonjour,voila j'ai un petit soucis bien que j'ai essayé de suivre mes cours à lettre, je ne comprends toujours pas le probleme.voila en gros la foncti eviter les debordement memoire en c [ par flofloo ] bonjour tout le monde j'ai un probleme avec la gestion des pointeurs voila je m'explique de suite...j'ai une fonction "ExtractString" dont voici l'ent corection d'un ensemble de fonction [ par abdelali62 ] Bonjour je me prepare la pour l'exam final du BTS de maroc section genie informatique et quand j ai pros un exercice je trouver des difficulter pour l fonction pour "écrire" une variable [ par kenjomaster ] Bonjour,J'arrive à positionner un curseur, faire un clic, simuler une ou plusieurs combinaisons de touches.Mais je ne sais pas écrire une variable (du probleme avec char et strcat :'( [ par paulina82 ] bonjour a tous. j'ai un probleme avec char er stract. enfaite j'ai fais 2 fonction. la 1ere qui doit initialisé un tableu avec une chaine de caracter passage d'un char[] par reference [ par tibob51 ] Bonsoir a tous, j'ai un problème que je n'arrive pas à comprendre.Je programme depuis peu sous dev c++, et j'ai une syntaxe que j'utilisai sous borlan


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales