Comment accéder à un élement d'un tableau
pika86
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
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);
A voir également:
- Désolé. vous ne pouvez pas accéder à cet élément, car il ne respecte pas nos conditions d'utilisation.
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Instagram votre compte ne respecte pas les règles de la communauté - Guide
- Ce message a été supprimé car il ne respecte pas nos standards de la communauté - Guide
- Comment accéder à wetransfer gratuitement ? - Guide
3 réponses
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 ?
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 ?
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;
}
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;
}
Peut-être qu'il voulait faire :
Y=vect(Y,0,x);
Dans ce cas il perdrait la valeur initiale