De toute manière tu devrais faire int **poids et non int *poids. Et meme ca, ca ne marcherait pas. Tu ne peux pas passer un tableau a deux dimensions en C sans lui dire au moins combien fait la largeur de ton tableau. Je crois que c'est du au fait que quand ton tableau est a une dimension, le compilateur y accede par
c'est a dire qu'il va se décaler de i dans les cases memoires à partir du début de ton tablo.
En revanche, lorsque ton tableau est a deux dimensions, le compilateur accede aux elements de ton tablo tab[i][j] par
où j est l'index des colonnes, i celui des lignes, et sx est la largeur de ton tableau. C'est pourquoi il lui faut connaitre sx : s'il veut acceder au deuxième element de la troisième lignes par exemple, le compilateur doit d'abord se décaler de sx*3 cases (donc trois lignes), puis se déplacer de deux. Donc en fait je crois que ta fonction devrait etre, si tu veux rester en tableaux :
Code :
- void initialiserpoids(float *poids[NBLETTRES])
|
les pros du C ici, dont je ne fais pas partie, te dirons sans doute si je t'ai dis une enorme connerie , mais je crois pas (enfin j'espere pas). Au fait si tu passes un tablo de float, ta fonction serait mieux en float comme je l'ai ecrit.