Question simple sur les tableaux

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 24 nov. 2003 à 09:04
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 24 nov. 2003 à 12:03
Bonjours a tous,
pourquoi quand j'écris le code ci-dessous:

#include <stdio.h>

int main()
{
int i;
char tab[6] = "bonjour";

for (i=0;i==6;i++)
{
printf("%c", tab[i]);
}

return 0;
}


j'obtiens une erreur a la compilation, je ne comprend pas... pourriez-vous m'aider svp? (je suis sur que c'est un truc tout bete, mais je ne sais pas quoi)
Merci par avance...
Bob...

"La chance accorde ses faveur aux esprits avertis..."

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 nov. 2003 à 09:32
char tab[6] = "bonjour";
et que dit le message d'erreur pour cette ligne ?
Quand tu ecris char tab[6], c'est cense faire quoi d'apres toi ?
BruNews, ciao...
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
24 nov. 2003 à 09:40
Il doit juste falloir apprendre à compter les lettres du mot bonjour + un ptit qqhcose .... ;)=
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 nov. 2003 à 09:46
La, je sens qu'on brule, la solution est proche.
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
24 nov. 2003 à 10:34
je vois pas pourquoi je devrais conter les lettre vu que le mot 'bonjour' contient 7 lettre et le tableau contient 7 'colone':
tab[0] = 'b'
tab[1] = 'o'
tab[2] = 'n'
tab[3] = 'j'
tab[4] = 'o'
tab[5] = 'u'
tab[6] = 'r'
le programme sert juste a afficher les caracteres contenus dans un tableau... et le compilateur me signale le message d'erreur suivant:
error C2117: 'bonjour' : array bounds overflow
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 nov. 2003 à 10:47
overflow !!!
char truc[10]; est reservation pour 10 octets
= "bonjour", faut 8 octets car il y a le ZERO FINAL DE CHAINE.
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
24 nov. 2003 à 11:03
voici donc le programme final:
#include <stdio.h>

int main()
{
int i;
char tab[10] = "bonjour";

for (i=0;i==6;i++)
{
printf("%c", tab[i]);
}

return 0;
}

certe maintenant je n'ai plus de probleme de compilation et je te remercie pour ton aide, mais le programme n'affiche rien non plus a l'écran pas un seul caractere...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 nov. 2003 à 11:08
for (i=0;i < 7; i++)
pour syntaxe printf, a toi de voir c'est pas mon truc.
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
24 nov. 2003 à 11:47
la ca marche, mais je comprend pas pourquoi ?! merci d'avoir resolut le probleme, mais au dela de ca, j'aimerais comprendre...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 nov. 2003 à 11:57
Regarde ce que sont les 3 parties declaratives du 'for'.
TOUTES OPTIONNELLES, for(;;) est legal.
for(A;B;C):
A) initialisation de ce que tu veux.
B) condition a faire TANT QUE, donc si i==6 ne part pas.
C) increm, decrem de compteur ou delires persos.
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
24 nov. 2003 à 12:03
ok c bon j'ai compris je te remercie...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
Rejoignez-nous