Jagged Arrays in C/C : The Mystery Unveiled
Contrairement à son nom, un Jagged Array, également appelé Ragged Array, est un tableau de tableaux où les sous-tableaux ont des longueurs différentes. Bien que ce concept soit omniprésent dans des langages comme JavaScript et Python, C/C ne fournit pas de support direct pour ce type de structure de données.
Manque de tableaux Jagged natifs dans C/C
Lorsque vous rencontrez une erreur lors de la compilation du code suivant en C ou C :
<code class="cpp">int jagged[][] = { {0,1}, {1,2,3} };</code>
Le message "la déclaration de `jagged' comme tableau multidimensionnel doit avoir des limites pour toutes les dimensions sauf la première" suggère que Les tableaux multidimensionnels C/C doivent spécifier les longueurs de toutes leurs dimensions sauf la première. En d'autres termes, les tableaux irréguliers ne font pas partie de la spécification du langage C/C natif.
Émulation de tableaux irréguliers en C
Pour obtenir la fonctionnalité des tableaux irréguliers en C , il faut revenir à des approches alternatives. L'une de ces méthodes consiste à utiliser un tableau de pointeurs :
<code class="cpp">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
Dans cet exemple, jagged est un tableau de cinq pointeurs. Chaque pointeur pointe vers un bloc de mémoire alloué pour stocker des entiers. En utilisant un tableau de pointeurs, vous pouvez créer des sous-tableaux de différentes tailles et garder le contrôle sur leur allocation et leur gestion de mémoire.
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!