Variables, je comprends rien!

Signaler
Messages postés
36
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
11 septembre 2005
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
J`ecris avec un clavier americain donc je ne peut pas ecrire avec les acents.

Je fais un prog pour les codes serie (je pense ke tout le monde siat ce ke c). Mais j`ai un probleme avec une variable.
voici une partie du code:

void main(void)
{
char a[6],serial[19] = "AAAA-AAAA-AAAA-6-3";
int i;
for(i=0;i<=3;i++)
{
a[i] = serial[i];
}
for(i=5;i<=8;i++)
{
cout << a[i]
}
}
Le prog m`affiche rien!
J`ai beaucoup simplifie la chose mais il faut que dans la 2eme loop le prog m`afiche a[i].
Merci d`avance.

3 réponses

Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008
1
j'ai rien sous la main pour verifier ce que je te donne mais essaie ça.
void main(void)
{
char a[6],serial[19] = "AAAA-AAAA-AAAA-6-3";
int i;
for(i=0;i<=3;i++)
{
a[i] = serial[i];
}
a[i+1]='\0';//fin de chaine

cout << a

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Logique que ca ne t'affiche rien...
Regarde les bornes de tes boucles!

Dans ta premiere boucle tu remplies les 4 premiers éléments du tableau "a[6]".
Ensuite dans la seconde boucle tu affiches les éléments a partir du 5ième. C'est pas logique ton truc.

En plus ton prog doit planter! Tu affiches jusqu'au 9ième élément alors que ton tableau ne peut en contenir que 6!

EN gros revoie tes boucles et ca ira mieux.

Shell
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Si ne crash pas c'est GRACE au compilo qui a corrige:
char a[6]; ets devenu char[8] comme aurait du etre correctement declare pour garantir un alignement correct sur processeur 32 bits, toujours multiple de 4.
ensuite il y a le 'i' dessous qui fait 4 octets donc va bon, pas plantage mais seulement tout faux.

ciao...
BruNews, Admin CS, MVP Visual C++