Bonjour,
J'ai un problème récurent:
Dans mon cours, il est dit qu'il est possible de travailler avec des pointeurs mêmer pour des tableaux à plusieurs dimensions pour obtenir toutes les valeurs du tableau par incrémentation du pointeur auquel on a affecté la valeur du tableau (début de l'emplacement mémoire), car le poiteur était converti dans le type "type*".
A chaque compilation sous visual C++, le message suivant apparait:
c:\users\yonathan\documents\visual studio 2005\projects\40\40\source.cpp(17) : error C2664: 'somme'*: impossible de convertir le paramètre 1 de 'float [2][3]' en 'float *'
1> Aucun contexte dans lequel cette conversion est possible
Voici le code du programme qui est censé renvoyer la somme des élements d'un tableau fourni en argument:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include <stdio.h> void main() { float somme (float * t, int i, int j); int i, j; float t [2][3] = {1, 2, 3, 4, 5, 6}; for (i=0; i<2; i++) for (j=0; j<3; j++) { printf("entrez valeur"); scanf("f", &t[i][j]); } somme(t, i, j); } float sommme (float * t, int i, int j) { int nbr = i*j, k; float somme; int * adt; adt = (float *) t; for (k=0; k<nbr; k++) somme += *(adt + k); printf("somme : %f", somme); }
Partager