Affichage ds elment d un tableau en C

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. normal t'as oublié le i
    printf("voila le T[%d]=%d\n",i,t[i]);
    0
    1. 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
      1. retire les \n dans tes scanf ça devrait marcher
        scanf("%d",&n);
        et
        scanf("%d",&t[i]);
        0
        1. Contributeur
          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
          1. STP Fiddy g ai pa bien compris le cas si maolloc a echoue.!!comment faire ce teste?
            0
            1. Contributeur
              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
              1. ok merci c un bon astuce!!!!
                merci ts lemonde
                0