logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [C++] Tableau, Code simple, ERROR !  (Lu 3830 fois)
Folcan

Profil challenge

Classement : 509/54327

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« 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...
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Nebelmann

Profil challenge

Classement : 464/54327

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1357


Voir le profil
« #1 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...
Journalisée

-- Nebelmann -- Registered linux user #429186
«Si les lecteurs étaient des compilateurs, les posteurs feraient peut-être davantage attention à ce qu'ils écrivent...»
Folcan

Profil challenge

Classement : 509/54327

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #2 le: 26 Novembre 2005 à 16:41:44 »

Arg, effectivement, j'ai mal recopié ce que j'avais fais en cours ^^

Il ya effectivement le &
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Folcan

Profil challenge

Classement : 509/54327

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #3 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...
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Nebelmann

Profil challenge

Classement : 464/54327

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1357


Voir le profil
« #4 le: 26 Novembre 2005 à 16:51:32 »

printf("\nValeur %d",i);

avec le %d c'est mieux
Journalisée

-- Nebelmann -- Registered linux user #429186
«Si les lecteurs étaient des compilateurs, les posteurs feraient peut-être davantage attention à ce qu'ils écrivent...»
Folcan

Profil challenge

Classement : 509/54327

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #5 le: 26 Novembre 2005 à 17:35:56 »

arf le con...merciiiii
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Pages: [1]
  Imprimer  
 
Aller à: