Problème de compilation avec un tableau passé à une fonction
Bonjour à tous,
J'ai un soucis avec un code qui, j'ai l'impression, est pourtant tout bête...
Voilà l'idée : j'ai 2 fichiers séparés.
Le fichier 1 comporte 2 fonctions :
- une fonction de création d'un tableau de coefficients :
Code:
1 2 3 4 5 6 7 8 9
| double* init_scale(int Ncol, ...)
{
double *coefs = new double [Ncol*2];
// Remplissage du tableau coefs
for (j=0;j<Ncol;j++)
{
coefs[2*j] = (b-a)/(xmax - xmin);
coefs[2*j+1] = a - xmin * coefs[2*j];
} |
Je ne mets cet extrait de code que pour info sur la construction de coefs, il fonctionne en effet très bien.
- une fonction de calcul d'une data à partir de ces coefficients :
Code:
1 2 3 4
| void scale(double* data, int ind, double* coefs)
{
data = coefs[2*ind] * data + coefs[2*ind+1]; // Ligne où a été détecté une erreur par le compilateur
} |
Dans mon deuxième fichier, j'ai plusieurs fonctions dont notamment la fonction main(...) et une fonction qui fait appel à scale(...) :
Code:
1 2 3 4 5 6 7 8 9
| void predict(double* coefs, ...)
{
int ind = 0;
double fbuff = 0.;
// Boucle sur ind
// Donne une valeur non nulle à fbuff, puis :
scale(&fbuff,ind,coefs);
// Utilisation de fbuff, fin du code
} |
Je veux donc passer mon tableau de coefs à la fonction scale pour qu'elle modifie la valeur de fbuff (qui est donc passé comme pointeur). Or, quand j'essaye de compiler, j'obtiens l'erreur suivante :
error C2297: '*' : non conforme, l'opérande droit est du type 'double *'
J'ai cherché mais je ne vois pas où est l'erreur dans mon code... :( Merci de m'aider à y voir plus clair !