Maison >développement back-end >C++ >Comment puis-je créer des tableaux irréguliers en C/C ?
Tableaux Jagged en C/C
Malgré sa polyvalence, les langages de programmation C/C ne supportent pas nativement le concept de tableaux jagged, qui fait référence à des tableaux avec des sous-tableaux de longueur variable.
Énoncé du problème :
Lorsque vous essayez de définir un tableau irrégulier en C/C en utilisant la syntaxe suivante :
int jagged[][] = { {0,1}, {1,2,3} };
les développeurs rencontrent l'erreur de compilation suivante :
error: declaration of `jagged' as multidimensional array must have bounds for all dimensions except the first
Solution :
Pour contourner cette limitation, les développeurs C utilisent généralement un tableau de pointeurs . Cette approche implique la création d'un tableau qui stocke des pointeurs vers des sous-tableaux de différentes longueurs. Par exemple :
<code class="c">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
Dans cet exemple, le tableau jagged contient des pointeurs vers deux sous-tableaux : jagged[0] pointe vers un sous-tableau de 10 éléments, tandis que jagged[1] pointe vers un sous-tableau de 3 éléments. Chaque sous-tableau est alloué dynamiquement à l'aide de la fonction malloc.
En utilisant des tableaux de pointeurs, les développeurs peuvent émuler efficacement des tableaux irréguliers en C/C. Cependant, il est important de noter que cette approche nécessite une gestion minutieuse de la mémoire et une manipulation du pointeur.
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!