Cloner une chaîne de caractères
Bonjour,
mon enseignant m'a donné le corrigé de l'exercice ci-dessous, mon problème est que je ne comprends pas
-la signification de "fprintf", "stderr", pouvez m'expliquer? Et y a t-il une différence entre printf et fprintf?
-Quelle est la signification de cette ligne char * r = (char*) malloc((strlen(src)+1) * sizeof(char))? Quel est l'intéret de l'utiliser?
-Comment utilise t-on les * dans cet exercice? je sais juste qu'on utilise les astérisques * pour les pointeurs .En fait je débute en c, j'ai du mal à comprendre concrètement l'utilisation des pointeurs, des *,... quelqu'un pourrait t-il m'expliquer?
Merci d'avance
Exercice : Cloner une chaîne de caractères
On souhaite écrire une fonction cloneStrings qui retourne une copie d'une chaîne de caractèrespassee en paramètre.
corrigé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| char * cloneString(char * src)
{
if(src == NULL)
{
fprintf(stderr,"Entr�e vide!\n");
exit(1);
}
char * r = (char*) malloc((strlen(src)+1) * sizeof(char));
if(r == NULL)
{
fprintf(stderr,"Plus assez de m�moire!\n");
exit(1);
}
/** sauvegarde de l'adresse du d�but pour le retour */
char * t = r;
while ((*r = *src) != '\0')
{
src++;
r++;
}
return t;
} |