Affichage ds elment d un tableau en C

daniel7 Messages postés 127 Statut Membre -  
daniel7 Messages postés 127 Statut Membre -
bjr le programme suivant ne m affiche pas les element du tableau
[i]#include <stdio.h>
#include <stdlib.h>
void main()
{
int n;
int * t;
int i;
do
{
printf("donner n\n");
scanf("%d\n",&n);
}
while ( n<=0 );
t=(int*)malloc(n*sizeof(int));
for (i=0;i<n ;i++ )
{
printf("donner T[%d]\n",i);
scanf("%d\n",&t[i]);
}
printf("^$$$$$$$$$$$$$$$$$$$$ affichage $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$_\n");
for (i=0;i<n ;i++ )
{
printf("voila le T[%d]=%d\n",i,t);
}
}
Configuration: Windows XP
Firefox 3.0.4

7 réponses

  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    normal t'as oublié le i
    printf("voila le T[%d]=%d\n",i,t[i]);
    0
  2. daniel7 Messages postés 127 Statut Membre 8
     
    Normalemnt ca n est pa la vre cause bon en faite le message ^$$$$$$$$$$$$$$ affichage $$$$$$$$$$$$$$$$$$$$$$$ n est pa affiche et aussi les messages voila le T[%d]=%d\n
    merci
    0
  3. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    retire les \n dans tes scanf ça devrait marcher
    scanf("%d",&n);
    et
    scanf("%d",&t[i]);
    0
  4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Comme mype l'a dit, tu as oublié le i. t[i].
    De plus, enlève le '\n' de tes scanf.
    N'oublie pas non plus de tester le retour du malloc qui peut échouer. (if (t==NULL) exit(EXIT_FAILURE);)
    Et petite remarque, le prototype de main est un int. Donc int main(void).
    Cdlt
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. daniel7 Messages postés 127 Statut Membre 8
     
    STP Fiddy g ai pa bien compris le cas si maolloc a echoue.!!comment faire ce teste?
    0
  7. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Oui malloc peut très bien te retourner NULL si l'allocation échoue. Et dans ce cas, si tu continues ton programme tu vas accéder à tes cases non allouées, ce qui va te valoir un joli segfault.
    Je t'ai donné le code dans mon poste précédent ;)
    Je le remets.
    t=malloc(n*sizeof(int));
    if (t==NULL) exit(EXIT_FAILURE);
    //Là tu peux continuer ton code, l'allocation s'est bien déroulée.
    
    0
  8. daniel7 Messages postés 127 Statut Membre 8
     
    ok merci c un bon astuce!!!!
    merci ts lemonde
    0