Pointeur,adresse ...

Résolu
Bonjour, j'essai d'écrire un programme qui me trie un tableau puis je l'essai en entrant des valeurs, j'ai donc écrit deux versions pour essayer ma fonction qui sont pour moi equivalentes et pourtant l'une marche tres bien et l'autre me dit "segmentation fault (core dumped)"
voici les deux version :
La premiére :
#include <stdio.h>
#include <stdlib.h>
#define N 6
void trie3(float*,float*,int,int);
int main()
{ int i, g=0,d=N-1 ;
float T[N],maxi;
printf("Entrez les valeurs du tableau !");
for(i=0;i<N;i++)
scanf("%f",&T[i]);
trie3(T,&maxi,g,d);
printf("\nLe max est : %f",maxi);
for(i=0;i<N;i++)
printf("\n%f",T[i]);
return 0;
}
La deuxième :
#include <stdio.h>
#include <stdlib.h>
#define N 6
void trie3(float*,float*,int,int);
int main()
{ int i, g=0,d=N-1 ;
float T[N],*maxi;
printf("Entrez les valeurs du tableau !");
for(i=0;i<N;i++)
scanf("%f",&T[i]);
trie3(T,maxi,g,d);
printf("\nLe max est : %f",*maxi);
for(i=0;i<N;i++)
printf("\n%f",T[i]);
return 0;
}
La difference est liée à maxi!!

2 réponses

  1. salut,
    Je vous remercie pour votre réponse en effet c'était seulement l'allocation qui manquer !!
    1. Contributeur
      Bonjour,

      Tu n'as pas fait d'allocation.
      Utilise un malloc() et ça ira mieux.
      int *maxi=malloc(sizeof(int));
      Et un free(maxi); juste avant le return 0; final.
      Cdlt,
      1. Bonjour

        Plutôt sizeof(float), je pense.
      2. Contributeur
        Très juste :-).