NewbieContest

Programmation => Langages compilés => Discussion démarrée par: Folcan le 26 Novembre 2005 à 14:58:51



Titre: [C++] Tableau, Code simple, ERROR !
Posté par: Folcan le 26 Novembre 2005 à 14:58:51
Bonjour a tous, je voudrais juste savoir ce qui cloche la dedans :

/*
##########################
Utilisation de tableau
V 1.0
By Folcan
##########################
*/

//Inclusion des librairies
#include <stdio.h>
#define N 10

//Fonction main
int main()
{
int i;
int T[N];
for (i=0; i<N; i++)
{
scanf("%d",T);    
}
for (i=0; i<N; i++)
{
printf("%d",T);    
}    
}



----------------------------------

Lorsque je le compile, aucune erreur, mais quand je le lance (sous windows), la hop ca plante, avec un message :
"Tableau.exe a generé des erreurs et sera fermé par windows. Vous devrez redemarrer le programme. Un journal des erreurs est en cours de creation"

Pourtant, le log ce lance bien, il me demande bien le premier nombre, puis plante une fois que j'ai rentré le deuxieme ! Il enregistre bien le premier...

Qué passa ?? J'ai compiler le meme genre sous nux, et c'etait tres bien passé !
Pfff ca sux windows **No Sms** meme...


Titre: [C++] Tableau, Code simple, ERROR !
Posté par: Nebelmann le 26 Novembre 2005 à 16:24:51
Aïe aïe aïe, ce n'est effectivement pas très grave mais c'est une erreur chiante que les newbies font assez souvent.
Une des particularités du C/C++ est que ces langages sont très embêtants à appendre à cause des pointeurs.

Ton problème est simple : le tableau T est en fait une adresse mémoire vers le premier élément du tableau.

T tout seul = adresse
T[0] = valeur du premier élément (pas d'adresse)
&T[5] par contre vaut l'adresse du 6e élément de ton tableau.

La fonction scanf attend comme argument, après la chaîne de caractères, une ou plusieurs adresse où seront stockées les valeurs saisies. Or, dans ton cas, tu passes non pas une adresse mais une valeur : essaie donc
          scanf("%d",&T);
et ça marchera mieux.
Attention, si scanf demande des adresses, printf, lui, demande des valeurs!

Voili voilou, de quoi décourager les personnes voulant se lancer dans le C, non?? Meuh non j'rigole avec de la persévérance on y arrive!

EDIT : ce n'est pas la faute de windows pour une fois, par contre c'est bizarre que ça passe sous linux...


Titre: [C++] Tableau, Code simple, ERROR !
Posté par: Folcan le 26 Novembre 2005 à 16:41:44
Arg, effectivement, j'ai mal recopié ce que j'avais fais en cours ^^

Il ya effectivement le & :)


Titre: [C++] Tableau, Code simple, ERROR !
Posté par: Folcan le 26 Novembre 2005 à 16:50:10
Meme code :

for (i=0; i<N; i++)
{
printf("\nValeur ",i);
scanf("%d",&T);    
}

Je voudrais qu'il m'affiche :

Valeur 1
Valeur 2
etc...

Mais il m'affiche juste :

Valeur
Valeur
etc...


Titre: [C++] Tableau, Code simple, ERROR !
Posté par: Nebelmann le 26 Novembre 2005 à 16:51:32
printf("\nValeur %d",i);

avec le %d c'est mieux ;)


Titre: [C++] Tableau, Code simple, ERROR !
Posté par: Folcan le 26 Novembre 2005 à 17:35:56
arf le con...merciiiii :)