Comment accéder à un élement d'un tableau
Bonjour,
dans mon programme,j'ai déclaré une matrice sous forme de vecteur,et jai fais une fonction qui calcule un certain vecteur .mai après j'appelle la fonction pour calculé le 1 er élèment du vecteur..alors le compilateur m'affiche qu'il y a une incompatibilité de type "*double" et "double"
voila mon code:
double * vect(double *W,int k,double * h)
{
for(i=0;i<n;i++)
{
W[m*i+k]=h[i]/Normx;
}
return W;
}
Y[0]=vect(Y,0,x);
dans mon programme,j'ai déclaré une matrice sous forme de vecteur,et jai fais une fonction qui calcule un certain vecteur .mai après j'appelle la fonction pour calculé le 1 er élèment du vecteur..alors le compilateur m'affiche qu'il y a une incompatibilité de type "*double" et "double"
voila mon code:
double * vect(double *W,int k,double * h)
{
for(i=0;i<n;i++)
{
W[m*i+k]=h[i]/Normx;
}
return W;
}
Y[0]=vect(Y,0,x);
3 réponses
-
ContributeurBonjour,
double * vect(double *W,int k,double * h)
Ta fonction renvoie un vect* et admet en paramètre un double* (pour le 1er argument).
Hors, toi tu mets :
Y[0]=vect(Y,0,x);
Y et Y[0] ne peuvent pas être de même type (double*)...
En regardant ton code, il semblerait que Y soit de type double*. Donc Y[0] est de type double. Tu ne peux donc pas faire Y[0] = vect.
Que veux-tu faire exactement ? -
Bonjour,
pourrais-tu me dire à quelle ligne se trouve l'erreur, svp.
Y[0]=vect(Y,0,x); ??
vect renvoit un tableau/pointer et non un double,
est-ce que Y[0] est un tableau ? -
le probleme c'est le return de la fonction vecteur cette derniere retourne un pointeur de type double or Y[0] c'est une variable de type double donc on peut pas stocker un pointeur dans une variable
pour regler ton probleme
double vect(double *W,int k,double * h){
for(i=0;i<n;i++)
W[m*i+k]=h[i]/Normx;
return *W;
}