Float** c/c++

mategent -  
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Je fais mes premiers pas en OpenGl.

J'ai créés un carré, un cube.
J'ai trouvé le code pour créer un hyperbolloide.
Je compile ca marche.

J'ai voulu regarder le code, pour comprendre ce que ca fait.
Mais dans le code je trouve ça :
float** tabDisque1;
tabDisque1 = new float*[resolution];


tabDisque1 est un tableau
resolution est un entier.

Mais à quoi correspondent (pas le mot float mais ce qu'il y a autour)

- float**
- new float*

??
Merci



2 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
c'est une matrice dynamiqe (un tableau en 2 dimensions, plusieurs lignes et colonnes, dynamique car crée lors de l'exécution et non au début du programme à l'aide de new)

les tableaux à deux dimensions sont des tableaux de tableau. (un tableau dont chaque case est lui-même un tableau)

en C++ la manière basique de coder les tableau c'est par pointeur.

le nom d'un tableau, c'est grosso modo (à de très petites subtilités près) un pointeur vers la première case du tableau.

tableau statique :
int montTableau[10];


tableau dynamique :

int *monTableau; // le tableau n'existe pas encore
(....)
monTableau = new int[10]; // un tableau est crée en mémoire, et monTableau pointe dessus.


pour un tableau, on a un pointeur sur un int
après, pour un tableau en 2d (une matrice), c'est le même principe. sauf qu'on a un pointeur sur (un tableau d'int), c'est à dire un pointeur vers ( un pointeur vers un int).

je sais pas si j'ai été clair.

Tu sais ce que sont les pointeurs j'espère ? sinon ça va être dur à comprendre ^^
1
mategent
 
Ha d'accord merci.
J'ai compris le principe.


int *nom
float *nom

ici on a
float** nom

et du coup au lieu
de float[10]
on a float*[10]

Pourquoi 2 "*" ?

Ma réponse est que c'est du au tableau dans tableau que tu cites.
L'équivalent du cell en Matlab.
float* = tableau pointeur
float** = tableau de tableau pointeur


J'ai juste ou pas ?
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
euh, ça me semble pas mal, mais j'ai du mal à cerner ce que tu veux dire par "tableau pointeur".

En C/C++, un tableau est forcément un pointeur, en fait (encore une fois, à quelques subtilités près).

un tableau à deux dimensions est un tableau ou chaque case est un tableau. (donc où chaque case du tableau "principal" est un pointeur)
0