Maison > développement back-end > C++ > 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
Libérer: 2024-11-06 08:30:03
original
853 Les gens l'ont consulté

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} };
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal