Bonjour, j'ai une erreur de segmentation dans mon programme. Ell vient de la fonction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 float * RaisedCosineSQRT(float nb_periodes,float nb_points,float roll_off) { /*------déclaration et initialisation des variables------*/ int i,n; float t; float N=nb_periodes; float D=nb_points; float e=roll_off; float *w=NULL; float racineD,x,oneplus,oneminus,den; w=(float *)malloc(sizeof(float) * (N*D)); /*Allocation en mémoire*/ racineD = sqrt(D); for(i=0;i<N*D;i++) { w[i]=0; /*vecteur de 0*/ } for(n=0;N*D;n++) { t=n-N*D/2-1; if(t==0) { w[n]=(4*e/3.1416+1-e)/ racineD; } x=t/D; if(e==0) { w[n]=racineD*sin(3.1416*x)/(3.1416*t); } oneplus=(1.0+e)*3.1416/D; oneminus=(1.0-e)*3.1416/D; den=t*t*16*e*e-D*D; if(den==0) { w[n]=(D*racineD/(8*e*3.1416*t))*(oneplus*sin(oneplus*t)-(oneminus*D/(4*e*t))*cos(oneminus*t)+(D/(4*e*t*t))*sin(oneminus*t)); } w[n]=(4*e/(3.1416*racineD))*(cos(oneplus*t)+sin(oneminus*t)/(x*4*e))/(1.0-16*e*e*x*x); } for(i=0;i<N*D;i++) { printf("\nw[i]=%f",w[i]); /*vecteur de 0*/ } return(w); }
Si quelqu'un pouvait m'aider. Merci.
Partager