Differentes facons de passer un pointeur..... - C++ - Programmation
Marsh Posté le 06-07-2006 à 20:19:06
un tableau (l'identifieur) designe l'adresse de sont premier element et un tableau multidimensionnel est un tableau de tableau, donc le type d'un element de 'float [4][4]' est 'float [4]' et l'adresse d'un tableau 'float [4][4]' est typée 'float (*)[4]'
si tu as
Code :
|
tu peux faire
Code :
|
par contre pour affecter à un 'float *' le cast s'impose car le typage differe, apres c'est a toi de savoir ce que tu fais. glLoadMatrixf attends un pointeur vers une zone memoire représentant 16 float consecutif donc ca ne pose pas de problemes car ca correspond bien a "l'image memoire" d'un 'float [4][4]'
Marsh Posté le 06-07-2006 à 20:24:08
je penses qu'il ya mieux pour une matrice 4x4, voir du coté des bibliotheques mathématiques
Marsh Posté le 06-07-2006 à 21:18:59
skelter a écrit : un tableau (l'identifieur) designe l'adresse de sont premier element et un tableau multidimensionnel est un tableau de tableau, donc le type d'un element de 'float [4][4]' est 'float [4]' et l'adresse d'un tableau 'float [4][4]' est typée 'float (*)[4]'
|
Merci shelter pour cette reponse qui m'aide beaucoup.
Si j'ai compris:
m_fvMatrix est un pointeur de type float (*p)[4] quand declare selon mon premier quote.
Mais ma fonction openGL attend un float (*p), d'ou le cast.
Marsh Posté le 06-07-2006 à 21:35:32
oui, mais m_fvMatrix n'est pas exactement un pointeur mais une adresse (contenant <-> contenu) qui peut etre contenue par un pointeur float (*p)[4]
comme l'adresse d'une variable elle n'est pas modifiable, par exemple tu ne peux pas faire m_fvMatrix++ (alors qu'avec un pointeur non constant tu pourrais)
Marsh Posté le 06-07-2006 à 18:17:29
Bonjour a tous,
Je suis relativement nouveau dans le language C++. J'ai recemment lu un article sur gamdev.net:
http://www.gamedev.net/reference/p [...] /page2.asp
Un des exemple est le suivant:
La signature de la fonction glLoadMatrix etant:
http://www.mevis.de/opengl/glLoadMatrix.html
Je me demandais si la ligne :
pouvait en fait s'ecrire:
En esperant ne pas me faire incendier si c'est une question bete:
Merci !