C++ fonction parametre char* [Résolu]

cs_zimzima 2 Messages postés samedi 20 janvier 2007Date d'inscription 21 janvier 2008 Dernière intervention - 21 janv. 2008 à 14:02 - Dernière réponse : cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention
- 22 janv. 2008 à 12:09
Bonjour,
 Je dois développer un nouveau programme et dans le cahier des charges, je dois utiliser une fonction dont le prototype est de la forme:
void MaFonction(char *chaine1, char *chaine2)
où les chaines 1 et 2 contiendront du  texte renvoyé par la fonction "MaFonction"
j'aimerai pouvoir utiliser les parametres chaine1 et chaine2 renvoyés par la fonction dans mon programme principal(par exemple les afficher à lécran)

Problème:
quand j'execute le code de l'exemple cidessous, après execution de la fonction, les parametres de la fonction dans mon programme principal sont vide ou ne contiennent pas le texte que j'ai voulu transmettre

// ptchar.cpp : Defines the entry point for the console application.
//
/******************************************************/
// But du Programme :
// Utiliser le prototype de fonction
// void pchar(char *nom, char *prenom)
// pour renvoyer deux chaines de caratères avec une seule fonction
// et utiliser les parametres renvoyé par la fonction dans la suite du programme
/******************************************************/
#include "stdafx.h"
#include <fstream>
#include
#include <sstream>
using namespace std;


// declaration Prototype de la fonction
void pchar(char *nom, char *prenom);


/*------- Programme Principal --------*/
int main(int argc, char* argv[])
{
 char *nom1;
 char *prenom1;
 // Appel fonction
 pchar ( nom1, prenom1);
 // probleme nom1 et prenom1 ne contiennent pas "toto" et "tata" 
return 0;
}


/*------------ Fonction -------------*/
void pchar(char *nom, char *prenom)
{
 nom = "toto";
 prenom = "tata";
}
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 21 janv. 2008 à 14:41
3
Merci
J'ai oublié de préciser que tu ensuite utiliser la fonction strcpy() pour copier "toto" dans nom :

strcpy(nom, "toto");

Merci cs_Chatbour 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Chatbour
Meilleure réponse
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 21 janv. 2008 à 15:51
3
Merci
de rien

dorénavant il vaut mieux que tu poste dans le forum C++ et non pas Le Bar..

Cordialement..

Merci cs_Chatbour 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Chatbour
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 21 janv. 2008 à 14:39
0
Merci
Salut,

tu dois d'abord réserver de l'espace mémoire pour nom et prenom :

nom = newchar[5]; /* longueur de "toto" + 1 pour le '\0' */

// de même pour prenom



Soyez le bienvenue...
Commenter la réponse de cs_Chatbour
cs_zimzima 2 Messages postés samedi 20 janvier 2007Date d'inscription 21 janvier 2008 Dernière intervention - 21 janv. 2008 à 15:22
0
Merci
Merci beaucoup, c'est parfait, ca marche,
Il me semblait avoir essayé cette solution et que ca plantait, mais c'est ok
Donc encore merci
Commenter la réponse de cs_zimzima
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 22 janv. 2008 à 12:09
0
Merci
ReSalut,

lorsque tu crée des variables avec taille dynamique (c'est à dire avec new), il faut que tu libère l'espace alloué avec free..

en général, c'est au niveau du destructeur..
Commenter la réponse de cs_Chatbour

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.