Maison  >  Article  >  développement back-end  >  Comment puis-je créer des tableaux irréguliers en C/C ?

Comment puis-je créer des tableaux irréguliers en C/C ?

DDD
DDDoriginal
2024-11-06 08:30:03732parcourir

How Can I Create Jagged Arrays in 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!

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