Maison  >  Article  >  développement back-end  >  Comment convertir un tableau 2D en pointeur à pointeur en C ?

Comment convertir un tableau 2D en pointeur à pointeur en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 10:07:01776parcourir

How to Convert a 2D Array to a Pointer-to-Pointer in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn