#1 Le 27/04/2021, à 00:00
- zephyre123
[RESOLU] Problème initialisation de variables avec strlen
Bonjour,
Voici le code ci dessous :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char mot_secret[] = "Bonjour";
int taille = strlen(mot_secret) // ERREUR ICI POURQUOI ?;
Le compilateur GCC me dit la chose suivante = initializer element is not constant
Je ne comprends pas cette erreur.
Étant donné que le tableau de char mot secret est écris en dure alors strlen devrai être constant ?
Je ne vois pas comment corrigé cette erreur ni d’où elle vient, pouvez vous m'expliquer svp ?
Je veux juste récupérer dans une variable la taille de me tableau de char en l'occurrence celle de mot_secret.
Dernière modification par zephyre123 (Le 27/04/2021, à 11:39)
Hors ligne
#2 Le 27/04/2021, à 08:42
- DonutMan75
Re : [RESOLU] Problème initialisation de variables avec strlen
Bonjour,
il me semble que c'est parce qu'il manque le caractère de terminaison de chaîne à la fin de mot_secret.
Deux solutions pour cela :
1) le rajouter manuellement :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char mot_secret[] = "Bonjour\0";
int taille = strlen(mot_secret);
printf("Taille : %d\n", taille);
}
2) Passer par une déclaration de pointeur plutôt qu'un tableau (ce qui rajoutera automatiquement le '\0' à la fin)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *mot_secret = "Bonjour";
int taille = strlen(mot_secret);
printf("Taille : %d\n", taille);
}
Donut
Hors ligne
#3 Le 27/04/2021, à 10:35
- kamaris
Re : [RESOLU] Problème initialisation de variables avec strlen
@zephyre123 : tu dois être dans main() pour faire des appels de fonctions, tu ne peux initialiser les variables globales qu'avec des constantes.
@DonutMan75 : non, le caractère nul est bien ajouté à la fin des chaines déclarées de cette manière.
Hors ligne
#4 Le 27/04/2021, à 11:38
- zephyre123
Re : [RESOLU] Problème initialisation de variables avec strlen
ok Kamaris merci.
J'ai testé effectivement c'était ça le problème.
Merci encore !
Hors ligne
#5 Le 28/04/2021, à 07:50
- DonutMan75
Re : [RESOLU] Problème initialisation de variables avec strlen
Hello Kamaris,
bien vu, j'avais du résoudre le problème s'en m'en rendre compte en rajoutant le main... ^^
Bonne journée à tous
Hors ligne