Problème avec const char [DEBUTANT] - C++ - Programmation
Marsh Posté le 28-02-2004 à 12:19:14
Code :
|
ou
Code :
|
Marsh Posté le 28-02-2004 à 12:44:13
Dans ton premier exemple, pourquoi ne peut pas t-on écrire :
Code :
|
puisque la logique voudrait que l'on définisse version comme un pointeur de type char, non ? Comment peut s'interpréter "en français" la syntaxe que tu m'as indiqué, à savoir :
Code :
|
??
Merci beaucoup d'avance de ces précisions,
JM
Marsh Posté le 28-02-2004 à 12:49:27
const char* const : définit un pointeur constant sur une chaîne de caractères constante aussi ...
si tu met juste const char*, tu définis un pointeur (non constant) sur une chaîne de caractères constante, car le const viens après ce sur quoi il porte, sauf pour les types communs, pour lesquels il peut aussi être placé avant.
Corrigez-moi si je me trompe
Marsh Posté le 28-02-2004 à 13:16:05
NB : sur la politique de Linux (le noyau)
const char * const str ou const char str[] ?
Linux préfère la deuxième forme : en effet
- solution 1 : 1 pointeur plus une chaîne en mémoire en lecture seule, mémoire qui ne sera libéré qu'à la fin du programme (ici le noyau, et l'uptime ça peut durer)
- juste la chaîne, l'initialisation est faite dynamiquement, des que la portée dans laquelle le tableau est défini, tout disparait
évidemment, tout ça n'est que la politique de Linux, mais réfléchissez-y. Mais pour tout le monde, le pointeur ou la string va très bien
Marsh Posté le 28-02-2004 à 13:24:11
pas bete, jusque la je faisait aucune distinction mais c vrai, tu veux dire que quand on sortdu bloc actuel, on perd le pointeur mais ce qui est au bout reste seul dans la foret hostile de la memoire ? le pauvre...
Marsh Posté le 28-02-2004 à 12:08:08
Comment définir correctement une constante contenant un texte ? Par exemple :
ne fonctionne pas et
ne m'affiche que le chiffre 1 à chaque fois que j'utilise la constante VERSION dans mon source.
Qu'est ce que je fais mal ???
Merci de votre aide,
JM