Pointeur,adresse ...

Résolu
alamimoutaouakil Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
alamimoutaouakil Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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!!

A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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,
0
Utilisateur anonyme
 
Bonjour

Plutôt sizeof(float), je pense.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Très juste :-).
0
alamimoutaouakil Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
salut,
Je vous remercie pour votre réponse en effet c'était seulement l'allocation qui manquer !!
0