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 :
Je ne mets cet extrait de code que pour info sur la construction de coefs, il fonctionne en effet tr�s bien.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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]; }
- une fonction de calcul d'une data � partir de ces coefficients :
Dans mon deuxi�me fichier, j'ai plusieurs fonctions dont notamment la fonction main(...) et une fonction qui fait appel � scale(...) :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 }
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 :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 }
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 !
Partager