Bonjour
Pour tester l'interet d'utiliser const pour passer des pointeurs comme parametre d'entree ( non modifiable par un efonction ) j'ai utilise le code suivant
je m'attendais a ce la chaine que j'ai passe ne soit pas modifie
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 #include <stdio.h> #include <stdlib.h> #include <string.h> void update ( char const * chr) { char * string = (char *) chr; string[0]= 'b'; } int main (void) { char string[]="mokhtar"; update(string); printf ( "result = %s\n", string); return 0 ; }
surprise a l'execution de ce programme l achaine est modifiee
Remarque j'ai compile avec l'option -Wallresult = bokhtar
Alors a quoi sert d'utiliser des const dans les parametres de fonctions?
Partager