Pointeur fonction avec argument pointeur
Salutation,
J'essais de rentre un code plus lisible (il n'y a qu'une seule fonction int main(void) et ça fait trop).
Sauf que l'argument de cette fonction est un pointeur et la fonction elle même est de type pointeur.
Quand j'essais de compiler le code et voici les message d'erreurs:
invalid operands to binary expression
('double' and 'double *')
f = -k* r + b/pow(r, 5);
~~^ ~
error: passing 'double *' to parameter of incompatible type
'double'; dereference with *
f = -k* r + b/pow(r, 5);
^
*
/usr/include/math.h:443:25: note: passing argument to parameter here
extern double pow(double, double);
^
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define M 3 // masse du point en kg
#define k 0.1 // constante kg/sec^2
#define N 100000 // Nombre d'interation
#define pi 3.14159
double *fonction (double *r) {
double *f;
double b= 0.0;
f = -k* r + b/pow(r, 5);
return f;
} |
Désolée, je ne sais pas si je m'exprime mal, n'hésitez pas à dire vous en pensez..
Déréférencement je sais pas trop
Merci fœtus.
Concernant le déférencement, je ne vois pas ce que c'est j'ai pas beaucoup été enseigner sur le code.
Du coup comment différencier une multiplication d'un pointeur dans ma formule ?
J'ai modifié mon code comme vous pouvez le vois ci dessous mais j'ai encore un message d'erreur :
error: assigning to 'double *' from incompatible type 'double'
f = *r * (-k) + b/pow(*r, 5);
^ ~~~~~~~~~~~~~~~~~~~~~~~~
Code:
1 2 3 4 5 6 7
|
double *fonction (double *r) {
double *f;
double b= 0.0;
f = *r * (-k) + b/pow(*r, 5);
return f;
} |
Réponse à Bktero et Médinoc
Clairement, je ne maîtrise pas du tout les pointeurs (même pas les bases du C) donc pourquoi, bonne question...
Je devrais peut-être donner mon code dans sa totalité mais en gros.
L'une des raisons pour laquelle j'utilise un pointeur c'est que j'utilise une variable plusieurs fois dans le code. Selon le peu que j'ai appris sur les pointeurs il faut mettre un objet en mémoire pour le réutiliser (mettre en mémoire et "le pointer" pour appelé l'objet quoi).
Sauf qu'en faisant mes recherches je me suis rendu compte que je n'ai peut être pas besoin de pointeur!
En effet, dans le reste de mon code, j'utilise un tableau et moi, on m'avait "appris" que tableau=pointeur or askip, c'est faux (selon Openclasroom).
Un tableau se comporte comme un pointeur (c'est-à-dire qu'il place les objets en mémoire) mais que ce n'est pas un pointeur 8O
I am choked, well je suis une brêle en code comme vous l'auriez remarqué et désolée si je m'exprime mal..