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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager