Probleme en C [Fermé]

Signaler
-
cedd
Messages postés
10
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
22 juin 2003
-
Bonjour,
Alors voila je tape le code suivant

int Compute_metric(double *y, double **w, unsigned int n, double amp)
{
// This function computes the metric m for each symbol using the received signal y
// and the signal amplitude amp
// y is the pointer to the received signal
// w is the pointer to the metric matrix (2^N rows, n columns)
// n is the length of y ( Frame_Length+M)
// amp is the amplitude of the signal

// ***** COMPUTE THE TRELLIS METRIC MATRIX *******

unsigned int i;
unsigned int l;

// for each transition compute the corresponding metric
for(i=0;i<n;i++) // For each transition
{
for( l=0;l<N;l++)
{
**(w+i) += - fabs(*(y+(n*i+l))-(*(x+l))*amp)**2;
}
}

// ***** END COMPUTING THE TRELLIS METRIC MATRIX ************
return(0);
}

Et il m'affiche l'erreur suivante : illegal indirection, concernant la ligne à l'intérieur de la boucle for(l=0...)
Merci de votre aide

5 réponses

Messages postés
10
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
22 juin 2003

Je ne peux pas te dire exactement pourquoi ça ne compile pas mais je peux te dire que je trouve étrange ta déclaration double **w. Je suis certain que le problème se situe à cet endroit. De la façon que tu le déclare, c'est comme si tu as un tableau de pointeurs à des double, donc que le type de (*w) serait un *double. si c'est le cas, tu devrais faire: *((*w) + i) à la place de **(w+i). Si je me gourre et que ce n'est pas ça le problème, c'est surement le **2 qui est le problème: il n'y a pas d'opérateur de puissance en c++. Enfin, simple question d'esthétique, tu devrais faire -= à la place de =+ - .
Messages postés
10
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
22 juin 2003

=+ - dis-je
Messages postés
10
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
22 juin 2003

+= -

désolé
Messages postés
13103
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
25 janvier 2020
406
Salut !

for( l=0;l<N;l++)

C'est un erreur de frappe ? sinon ca devrait etre n
:o)

@+

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Messages postés
10
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
22 juin 2003

je suis dac pour la faute de frappe mais ça ne peux pas donner l'erreur illegal indirection par contre.