CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

chaine de caractere C++

renegada
renegada
Niveau 6
14 décembre 2005 à 20:51:59

bonjour j´ai un petit probleme pour faire la correspondance entre deux variables
je cree une classe avec en variable public
char on[20]
puis j´ai une fonction init(int x,int y,char t[20])
ensuite dans cet fonction impossible de faire on = t ...il met type incompatible char* et char.
J´ai essayer de mettre des & et * devant on rien ne change pareil devant t.

Avez vous une idée?

guyver2
guyver2
Niveau 10
14 décembre 2005 à 20:59:57

je serai toi je ferai plutot:

char *on
puis une fonction init(int x,int y,char *t)

et dans init tu fais un malloc comme ça tu n´a que des *t

renegada
renegada
Niveau 6
14 décembre 2005 à 21:03:22

je comprend pas trop car quand j´appelle init char t[20] c´est "directory d´un .gif"
je vois pas ou mettre le malloc

guyver2
guyver2
Niveau 10
14 décembre 2005 à 21:09:46

char *t;

void init(int x, int y, char **t)
{

  • t=(char*) (malloc(20*sizeof(char))) ;

//ici tu a alouer 20 caractere

  • t="ta chaine de 20 char";

}

ensuite tu appelle la fct comme ça:

init(a,b,&t);

Fenix[74]
Fenix[74]
Niveau 10
14 décembre 2005 à 21:12:39

fais strcpy(on, t);
On copie pas une chaine de caracteres en copiant l´adresse du tableau de caracteres.

renegada
renegada
Niveau 6
14 décembre 2005 à 21:15:36

merci fenix ca marche nikel
desolé pour guyver mais c´est trop compliqué
merci quand meme d´y avoir reflechi

Fenix[74]
Fenix[74]
Niveau 10
14 décembre 2005 à 21:28:09

keep it simple il a dit le modo :)

guyver2
guyver2
Niveau 10
14 décembre 2005 à 23:57:33

c´est vrai que c´est telement simple que je me demande pourquoi je suis parti avec des malloc et des pointeur de pointeur...

desolé.

godrik
godrik
Niveau 30
15 décembre 2005 à 00:02:30

guyver2, ca arrive a tout le monde

libjcc
libjcc
Niveau 4
15 décembre 2005 à 18:47:16

Moi j´ai un problême du même genre,

J´ai une fonction qui recoit un chaine de caractère en parametre et qui la modifie :

char* ModifieChaine(char *s2,int size)

elle est appelee comme ca :

ModifieChaine(s2,size);
ou s2 est un char* et size sa taille

J´ai un probleme pour retourner la chaine modifiée a partir de ModifieChaine

je fait s2 = ModifieChaine ( s2, size )
avec Modifichaine qui retourne un Char*

et ca marche pas :´(
Je m´embrouille un peu avec ces pointeurs ...
:merci:

guyver2
guyver2
Niveau 10
15 décembre 2005 à 20:47:50

si tu donne un char* comme parametre a ta fonction et que tu fais des affectation (du genre s2[5]=´c´;) a l´interieur de ta fonction alors elle sera modifié a la sortie (et donc pas besoin de faire un return)
En d´autre termes: vu que la chaine est passée par referrence elle est modifié dans ta fonction.

godrik
godrik
Niveau 30
16 décembre 2005 à 10:22:03

mmm, non pas par reference, par pointeur justement.
mais en effet elle devrit re-sortir modifié a juste titre.
notons que la plupart des fonction sur les chaine de caractere renvoye un pointeur sur la chaine modifié. (strcat, strcpy...)

et ca marche pas :´(

Une fois de plus "ca ne marche" ne nous informe pas du tout. soyez plus explicite!

guyver2
guyver2
Niveau 10
16 décembre 2005 à 10:45:07

mmm, non pas par reference, par pointeur justement.

oui oui autant pour moi c´est ce que je voulais dire. (desolé)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment