Bonsoir !
Je continu le tutoriel sur le C. Je suis actuellement rendu aux pointeurs et structures. À vrai dire je m'y perd un peu avec les pointeurs, entre le * et le &, je m'embrouille totalement. Bref voici un code que je test actuellement :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <stdio.h> typedef struct { int age; int weight; int size; char gender; double imc; } Personne; void imc(Personne * personne) { int weight, size; weight = personne -> weight; size = personne -> size; personne -> imc = (size * size) / weight; } int main() { Personne arthur; arthur.age = 16; arthur.weight = 53; arthur.size = 171; imc(arthur); printf("%d ans, IMC = %f\n", arthur.age, arthur.imc); return 0; } |
Seulement, celui-ci ne compile pas :
1 2 3 4 5 6 | struct.c: In function ‘main’: struct.c:30:5: error: incompatible type for argument 1 of ‘imc’ imc(arthur); ^ struct.c:12:6: note: expected ‘struct Personne *’ but argument is of type ‘Personne’ void imc(Personne * personne) |
Ce que je ne comprend pas, c'est pourquoi il n'accepte pas arthur comme argument alors qu'il est bien du type Personne.
Merci de votre aide!
+0
-0