Bonjour

apres mes test sur les const comme parametre de fonction ( voir http://www.developpez.net/forums/sho...d.php?t=498246) je me suis mis a tester les variables const
ci dessous un code qui utilise une variable globale avec const et une variable locale avec const
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
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
char const g_string[]="bonjour";
 
 
void update ( char * buffer)
{
    buffer[0] = 'l';
}
 
int main()
{ 
    char const string[]="mokhtar";
    char * mystring = (char *)string;
    update(mystring);
 
    printf ( "result = %s\n", string);
 
    mystring = (char *)g_string;
    update(mystring);
     printf ( "result = %s\n", g_string);
return 0 ; 
}

Resultat
result = lokhtar
Segmentation fault (core dumped)
donc la variable locale est modifiee mais la tentative de modifications de la variable globale provoque un segmentation fault

alors j'ai essaye avec une variable locale statique
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
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
void update ( char * buffer)
{
    buffer[0] = 'l';
}
 
int main()
{ 
    char static const string[]="mokhtar";
    char * mystring = (char *)string;
    update(mystring);
 
    printf ( "result = %s\n", string);
 
return 0 ; 
}
la le segmentaon fault etait au rendez vous

Conclusion : const n'est efficace que avec les variables globales et les variables locales statiques ( cad les variables qui ne sont pas alloues dans la pile)