begin process at 2012 05 29 01:09:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Copy de char *


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

Copy de char *

dimanche 2 janvier 2005 à 19:49:33 | Copy de char *

Tidam

Voila en gros une partie de mon prog :

char * phrase [5];
char *test = new char [50];
...
strcpy(phrase[2],test);

Et le programme plante. Le probleme est pourquoi (logique :D).
Si vous avez une petite idée voir même une solution j'en serais ravit !

Merci d'avance
dimanche 2 janvier 2005 à 20:06:37 | Re : Copy de char *

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
phrase[] est un tableau de pointeurs, faut allouer pour chacun.
et desallouer ensuite.

ciao...
BruNews, MVP VC++
dimanche 2 janvier 2005 à 20:22:15 | Re : Copy de char *

DeAtHCrAsH

phrase est de taille inférieure a test, tu risques des débordements.

Sinon si tu souhaites commencer a copier ta chaine a partir du deuxième élément, tu dois procédé comme suit :

strcpy(phrase + 2, test);

Sinon si tu souhaites copier intégrallement :

strcpy(phrase, test);

N'oublie pas qu'un tableau est en fait un pointeur qui allour une zone mémoire de taille constante.

Ainsi char phrase[5] équivaut a char *phrase = new char[5] a la seule différence que dans le deuxième cas tu peut allouer dynamiquement et donc redimenssionner ton tableau en tout point de ton programme.

Shell
dimanche 2 janvier 2005 à 20:53:32 | Re : Copy de char *

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
"phrase est de taille inférieure a test"

test[2] ne pointe nulle part; ne parlons pas de taille

char * phrase [5];
char *test = new char [50];
phrase[2] = new char[50]
...
strcpy(phrase[2],test);
dimanche 2 janvier 2005 à 20:54:46 | Re : Copy de char *

Tidam

non c'est pas vraiment ca
phrase[5] est un pointeur sur un char *
exemple:
phrase[1] -> "salut"
phrase[2] -> "bonjour"
...

mais j'ai trouvé la solution:
for (int i=0;i<5;i++)
phrase[i] = new char [50];

Merci a tous ++
dimanche 2 janvier 2005 à 21:05:26 | Re : Copy de char *

DeAtHCrAsH

vecchio56> Autant pour moi je lisais char phrase[5] et non char * phrase[5].

Shell
dimanche 2 janvier 2005 à 21:47:40 | Re : Copy de char *

vecchio56

Administrateur CodeS-SourceS
non c'est pas vraiment ca
phrase[5] est un char*, donc un pointeur de char


Cette discussion est classée dans : test, char, copy, phrase


Répondre à ce message

Sujets en rapport avec ce message

Switch et char [ par Stoomm ] Bonjour,Si j'ai :char test[10];strcpy (test, "monchar ";Si je souhaite faire un switch : Je fais comment ???switch (test){...}Il aime pas ! Quelqu'un char * test[264] [ par youpiyoyo ] si je créé cette variablechar * test[264];et si je fait test[0]="test";test[1]="test1";ceci fonctionnemais si par exemple si je faisint nb=0;char char Une Class et des Char ... [ par Tidam ] Vala j'ai un petit probleme avec ma source :class Test{public: Test (char initialName[15]); char LireName() const { return wName; } void DefName (char test sur variable de type char [ par enrageur ] j'aimerais indetifier des mots dans un fichier txt. J'ouvre le fichier et je le copy dans un char (data). Ensuite je fais un test pour voir si les deu aarg Chaine de caractère [ par NeoUmbrella ] Voila j'ai une question tres bete mais je ne comprends pas:char mot1[] = "test";char mot2[] = "test";Pourquoi qand je test avec un if mot1 n'est pas e Pb de majuscule à modifier sur un fichier [ par lacharlottinne ] Je voudrai convertir le text de mon fichier tout en minuscule .. quelqu'un peut m'aider ? voici le code #include #include #include #include #includ Problème avec fwrite [ par riep ] bonjour j'ai un petit problème avec fwrite, en fait je voudrais tout simplement recopier les données d'un fichier 1 dans un fichier 2 seulement si ces Débutant demande aide en C [ par juancho2786 ] Bonjour tout le monde. Je voulais vous demandez si mon code était correcte? et comment faire pour aller à la ligne après chaque enregistrement? Merci return char [ par nem02004 ] char test() {     char tst[10];     sprintf(tst,"looool");     return tst;}int main() {    MessageBox(NULL,test,NULL,NULL);}Je epnse que vous co Probleme de delete suite à une allocation dynamique [ par Kaory ] Bonjour j'ai un petit (ou gros faut voir) probleme je manipule des char * et j'utilise des new et lorsqu'il vient le moment de les desallouer avec del


Nos sponsors


Sondage...

Comparez les prix

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,452 sec (4)

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