Erreur de segment en c
Bonjour,
j'ai fait un petit programme en C et apparament la compilation marche mais quand j'execute dès la deuxieme ligne ça m'affiche erreur de segmentation et j'ai vraiment tout essayer pour essayer dele resoudre sans succés.
voici le code que j'ai tapé,alors s'il vous plait dite moi pourquoi j'ai ce message qui s'affiche.
#include<stdio.h>
#include<malloc.h>
void allouer(float *t,int n)
{
printf("\n");
printf("donner la taille du tableau : ");
scanf("%d",&n);
t=(float*)malloc(n*sizeof(float));
}
void saisie_tab(float *t,int n)
{
int i;
for(i=0;i<n;i++)
{
//for(j=0;j<n;j++)
//{
printf("donner t[%d]= ",i);
scanf("%f",&t[i]);
}
}
void affiche_tab(float *t,int n)
{
int i;
for(i=0;i<n;i++)
{
//for(j=0;j<n;j
//{
printf("%f\t",t[i]);
}
}
//recherche d'un element
void recheerche(float *t,int n)
{
int i,pos;float x;
printf("\n");
printf(" donner l'element à rechercher ");
scanf("%f",&x);
i=0;
while(i<n)
{
if(t[i]==x)
{
pos=i;
}
i++;
}
printf("%f est à la position %d du tableau ",x,pos);
printf("\n");
}
// occurence d'un element
void occurence(float *t,int n)
{
int i,pos;float x;
printf("donner l'element à compter ");
scanf("%f",&x);pos=0;
for(i=0;i<n;i++)
{
if(x==t[i])
pos=pos+1;
}
printf("%f apparait %d fois dans le tableau ",x,pos);
}
main()
{
int n;float *t;
allouer(t,n);
saisie_tab(t,n);
}
j'ai fait un petit programme en C et apparament la compilation marche mais quand j'execute dès la deuxieme ligne ça m'affiche erreur de segmentation et j'ai vraiment tout essayer pour essayer dele resoudre sans succés.
voici le code que j'ai tapé,alors s'il vous plait dite moi pourquoi j'ai ce message qui s'affiche.
#include<stdio.h>
#include<malloc.h>
void allouer(float *t,int n)
{
printf("\n");
printf("donner la taille du tableau : ");
scanf("%d",&n);
t=(float*)malloc(n*sizeof(float));
}
void saisie_tab(float *t,int n)
{
int i;
for(i=0;i<n;i++)
{
//for(j=0;j<n;j++)
//{
printf("donner t[%d]= ",i);
scanf("%f",&t[i]);
}
}
void affiche_tab(float *t,int n)
{
int i;
for(i=0;i<n;i++)
{
//for(j=0;j<n;j
//{
printf("%f\t",t[i]);
}
}
//recherche d'un element
void recheerche(float *t,int n)
{
int i,pos;float x;
printf("\n");
printf(" donner l'element à rechercher ");
scanf("%f",&x);
i=0;
while(i<n)
{
if(t[i]==x)
{
pos=i;
}
i++;
}
printf("%f est à la position %d du tableau ",x,pos);
printf("\n");
}
// occurence d'un element
void occurence(float *t,int n)
{
int i,pos;float x;
printf("donner l'element à compter ");
scanf("%f",&x);pos=0;
for(i=0;i<n;i++)
{
if(x==t[i])
pos=pos+1;
}
printf("%f apparait %d fois dans le tableau ",x,pos);
}
main()
{
int n;float *t;
allouer(t,n);
saisie_tab(t,n);
}