begin process at 2012 05 29 08:03:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Manip' des variables du type char...


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

Manip' des variables du type char...

mercredi 26 mai 2004 à 23:03:36 | Manip' des variables du type char...

DJeS

J'ai d'eternels problemes pour manipuler les variables char, const char etc...
quand je veux faire passer un argument char a un fonction j'ai souvent des erreurs du genre impossible de convertir en const char...je defini en const char ma variable mais erreur "impossible de convetir const char en const char".
qqun a t'il une bonne adresse ou un bon tut' a me conseiller?
dois-je utiliser les pointeurs ou qqchose comme ca pour manipuler correctement ce type de données...?
je vous serai reconnaissant d'un ptit coup de pouce car ces erreurs me rendent la vie impossible.....argh!
DJeS
mercredi 26 mai 2004 à 23:05:28 | Re : Manip' des variables du type char...

BruNews

Administrateur CodeS-SourceS
Mets un exemple d'erreur, sera plus facile a demarrer une explication.

ciao...
BruNews, Admin CS, MVP Visual C++
mercredi 26 mai 2004 à 23:17:23 | Re : Manip' des variables du type char...

DJeS

oui et bien voila un exemple. je suis sous dec++ 4.9.8.0
je veux pouvoir me connecter avec une socket a une adresse determiner par un utilisateur avec les fct cout et cin de iostream.
sur la ligne :
sin.sin_addr.s_addr = inet_addr(adresse); //adresse étant la variable censée contenir l'adresse
si je la definie en char, ca ne marche evidemment pas puisque il faut un type const char. si je la defini en tant que const char, il me met "uninitialized const 'adress' ", sans doute logiquement puisque ma constante n'en est pas vraiment une....
en bref, j'ai un probleme entre le type de variable utilisée pour la saisie de donnée en entrée clavier en console,
et son utilisation avec des fonctions qui recquiert un certain type de variable...cela doit etre idiot mais j'avoue que ca me bloque...

PS: dites moi si vous n'avez pas compris ma nouvelle explication ;-)
DJeS
mercredi 26 mai 2004 à 23:29:20 | Re : Manip' des variables du type char...

Anacr0x

char *adresse = "127.0.0.1";

ou encore
char adresse[32];
strcpy(adresse, "127.0.0.1");

La deuxieme forme est préférable si tu compte modifier la variable

PS : la transormation en const char* se fait automatiquement si tu lui passe un char*, tu ne doit pas avoir d'erreur de compil. Tu ne lui passait pas des char tt court par hasard (1 seul caractère) ?
mercredi 26 mai 2004 à 23:29:41 | Re : Manip' des variables du type char...

BruNews

Administrateur CodeS-SourceS
inet_addr() prend 'const char*' POINTEUR !!! en NON char.

le const indique simplement qu'il ne modifiera pas les octets references par le pointeur que tu passeras, rien d'autre.

char adresse[260];
ou un pointeur resultant d'une alloc dynamique, tout ceci sera valable comme param.

ciao...
BruNews, Admin CS, MVP Visual C++
vendredi 28 mai 2004 à 11:23:07 | Re : Manip' des variables du type char...

DJeS

Merci beaucoup ca marche comme sur des roulettes apres qq experimentations...
non anacr0x ce n'est pas que je n'envoyait qu'un char tout court comme tu dis mais que effectivement, je ne lui passait pas un pointeur et une variable...merci bcp pr vos reponses...j'ai notamment appris que char variable[30] etait conesidéré comme un pointeur char *variable. sauf que dans le premier cas, on "monopolise" 30 octets tandis que dans le dernier c'est" dynamique" et le programme adapte l'espace memoire reservé a la variable...c ca? cependant je ne comprend pas tres bien comment fonctionne l'allocation dynamique pr que tout ne se marche pas dessus (debordement de tampon)...
merci


DJeS
vendredi 28 mai 2004 à 11:24:28 | Re : Manip' des variables du type char...

DJeS

"je ne lui passait pas un pointeur et une variable"...
euh en fait c plutot :
je lui passait une variable et non un pointeur

DJeS
vendredi 28 mai 2004 à 11:27:53 | Re : Manip' des variables du type char...

BruNews

Administrateur CodeS-SourceS
Fais gaffe que
char *truc;
n'a rien de dynamique de lui meme, il faut allouer l'espace memoir.
truc = (char*) malloc(tailleVoulue);

sinon il ne pointe sur rien de defini et c'est la cata assuree.

ciao...
BruNews, Admin CS, MVP Visual C++
vendredi 28 mai 2004 à 11:34:23 | Re : Manip' des variables du type char...

DJeS

ah d'accord...et si je fais

char machin;
int fct(char *truc)
{
send(socket,truc, strlen(truc),0);
}

fct(machin);

ca doit marcher nan ?
le pointeur *truc on s'en occupe pas vraiment si?
DJeS
vendredi 28 mai 2004 à 11:37:03 | Re : Manip' des variables du type char...

BruNews

Administrateur CodeS-SourceS
*truc DOIT etre alloue AVANT emploi sinon exception memoire a tout coup.
Rien n'est implicite dans la gestion de la memoire.

ciao...
BruNews, Admin CS, MVP Visual C++

1 2

Cette discussion est classée dans : variables, type, const, impossible, char


Répondre à ce message

Sujets en rapport avec ce message

Un truc basique -> Liée 2 variables [ par wizard512 ] Bonjours,J'ai un petit probleme qui commence a m'aggacé :je n'arrive pas a placé 2 variables dans une variable,je m'explique   :EXEMPLE :------------- impossible de convertir const char * en char * const [ par wallie0703 ] Bonjour je n'arrive pas a compiler mon projet car il ya un problème de conversion         C843_CST(ID_, AxisName_.c_str(), "M-232.17" ); -->error C266 structure [ par lektrosonic ] Bojour,j'ai cree cette structure:typedef struct element element;struct element{    SOCKET socket;    unsigned int con_type;    int index;    BOOL conn Changer Type d'une edit box [ par Andejen ] Bonjour,Je souhaiterai afficher via une EditBox certaines variables ne correspondant pas aux types génériques.En effet j'utilise un type tout au long utiliser une string avec switch/case [ par potimarara ] Salut a tous,J ai le code suivant qui a partir de un nom de ficher (avec extension) me renvoir un content-type.Le probleme est que lorsque j extrais l Aide langage [ par toosdu87 ] Voila je suis complètement débutant sur le C++ et j'aimerai compiler un programme.Le problème est qu'il me créer l'erreur suivante lors de la compilat Impossible de créer un objet [ par daviddubois ] Bonjour tout le monde,Je débute en C++.Je suis occupé à créer un programme qui va me permettre de calculer le rayon d'un triangle, la superficie d'un Questions sur l'héritage (surtout sur le protected et le private) [ par daviddubois ] Bonjour tout le monde,Je viens vous poser des questions à props de l'héritage.J'ai compris qu'on avait une classe mère (de base) et une classe fille ( const char * vers char * [ par nord666 ] Salut,Je doit transformer un constchar * en char *<font face="Times New Roman" si Template et operator= (c++) [ par Crownless00 ] J'ai la classe template suivante :template class Point3D{public :    Point3D(Type posX, Type posY, Type posZ) {...}    Point3D() {x = 0; y = 0; z = 0;


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 1,498 sec (4)

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