Darkneon
Messages postés56Date d'inscriptionvendredi 18 mai 2001StatutMembreDernière intervention13 décembre 2005
-
31 mars 2003 à 05:38
superpa
Messages postés113Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 5 janvier 2004
-
2 avril 2003 à 12:42
Salut,
J'ai le code suivant.
#include
char strA[27] = "abcdefghijklmnopqrstuvwxyz";
int main(void)
{
char *pA;
pA = new char[27];
int i = 0;
while (strA[i] != '\0')
{
*pA++ = strA[i];
i++;
}
*pA = '\0'
cout << pA;
return 0;
}
Pour moi tout a l'air normal, si je suis le code ligne par ligne, le text de strA devrait bien se retrouver dans l'espace alloue a pA. Le probleme est que ca n'imprime rien. Quelqu'un a une idee pourquoi?
Darkneon
Messages postés56Date d'inscriptionvendredi 18 mai 2001StatutMembreDernière intervention13 décembre 2005 2 avril 2003 à 02:11
Merci !!
T'as raison, j'ai oublie le delete [];
Le but etait de recreer strcpy, mais t'avais raison pour la fin de la chaine, alors j'ai ajoutepA -27; apres le *pA '\0' et ca marche.
Maintenant, il y a t'il une facon plus simple (automatique) de revenir au debut d'un pointer? Car si il faut suivre de combien faut le soustraire, ca doit etre melangant dans un long programme.
superpa
Messages postés113Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 5 janvier 2004 2 avril 2003 à 12:42
Y'a pas de reset mais ce que tu peux faire c'est utiliser 2 ptr:
un qui restera au début (et que tu utiliseras par la suite) et un autre qui changera la valeur).
A bientôt,
P-A
PS: bon exercice de réecrire strcpy mais tu devrais essayer dans le même langage que celui avec lequel elle a été créée: l'ASM
:big)