Maison >développement back-end >C++ >Comment convertir un tableau 2D en pointeur à pointeur en C ?
Conversion d'un tableau 2D en pointeur en pointeur
Considérez le scénario suivant :
Activity solution[a][b]; // ... Activity **mother = solution;
Dans Dans cette situation, vous souhaiterez peut-être convertir un tableau d'objets 2D en pointeur à pointeur. Cependant, la conversion directe n'est pas possible en raison de l'incompatibilité des types.
Présentation d'un tableau intermédiaire
Pour combler l'écart, introduisez un tableau intermédiaire « d'index de ligne » :
Activity solution[a][b]; Activity *solution_rows[a] = { solution[0], solution[1] /* and so on */ }; Activity **mother = solution_rows;
Cela permet d'accéder aux éléments de la manière suivante :
mother[i][j] = solution[i][j]
Comprendre la conversion
la solution[i] est une pointeur vers la ième ligne du tableau 2D. solution_rows est un tableau de ces pointeurs de ligne. Par conséquent, solution_rows[i] est équivalent à solution[i].
Lorsque vous attribuez solution_rows à mother, vous créez effectivement un pointeur vers pointeur qui pointe vers les premiers éléments de chaque ligne de la solution.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!