parametre (char const *) d'une fonction
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
Code:
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 ;
} |
je m'attendais a ce la chaine que j'ai passe ne soit pas modifie
surprise a l'execution de ce programme l achaine est modifiee
Citation:
result = bokhtar
Remarque j'ai compile avec l'option -Wall
Alors a quoi sert d'utiliser des const dans les parametres de fonctions?