J'ai une fonction qui ressemble à ceciConversion pointeur à pointeur sur un tableau 2D
float Determinant(unsigned int n, float a[][n])
et je veux passer un double pointeur
float **a
est-il un moyen pour diffuser float **a
à float a[][n]
?
J'ai une fonction qui ressemble à ceciConversion pointeur à pointeur sur un tableau 2D
float Determinant(unsigned int n, float a[][n])
et je veux passer un double pointeur
float **a
est-il un moyen pour diffuser float **a
à float a[][n]
?
Non, il n'y a aucun moyen de le faire. Le tableau a
, lorsqu'il est déclaré en tant que paramètre de fonction, se désintègre en un pointeur vers le premier élément, un pointeur de tableau de float (*)[n]
. Ni ce type de pointeur de tableau ni le tableau float a[][n]
n'ont quoi que ce soit à voir avec le type float**
.
La nécessité de passer un float**
à cette fonction provient probablement d'une conception de programme défectueuse. Peut-être confondez-vous des tables de recherche à pointeur allouées dynamiquement pour des tableaux 2D? Si oui, voir Correctly allocating multi-dimensional arrays.
Merci beaucoup! –