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);

3 réponses

  1. Contributeur
    Bonjour,

    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 ?
    1
    1. Bonjour,
      Peut-être qu'il voulait faire :
      Y=vect(Y,0,x);
      Dans ce cas il perdrait la valeur initiale
      0
  2. 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 ?
    0
    1. 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;
      }
      0
      1. Contributeur
        Je doute que vect() doit renvoyer un double.
        Je vois pas l'intérêt sinon. Autant renvoyer h[0]/Normx...
        Un vecteur contient plusieurs éléments. Il faut donc bel et bien renvoyer un double*.
        Ce qu'il souhaite faire est plutôt : W = vect(Y, 0, x). Enfin à lui de dire.
        0