"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment pouvons-nous implémenter des tableaux irréguliers en C/C++ ?

Comment pouvons-nous implémenter des tableaux irréguliers en C/C++ ?

Publié le 2024-11-17
Parcourir:355

How Can We Implement Jagged Arrays in C/C  ?

Comprendre les tableaux irréguliers dans C/C

Bien que le concept de tableaux irréguliers, où les lignes peuvent avoir des longueurs variables, ne soit pas directement pris en charge dans C/C standard, il existe des techniques pour obtenir des fonctionnalités similaires.

Lors de la tentative de déclaration d'un tableau irrégulier en C/C comme indiqué ci-dessous :

int jagged[][] = { {0,1}, {1,2,3} };

les erreurs du compilateur sont éliminées, soulignant la nécessité de spécifier des limites pour toutes les dimensions sauf la première. Pour surmonter cette limitation, une approche alternative consiste à utiliser un tableau de pointeurs.

Création de tableaux irréguliers à l'aide d'un tableau de pointeurs

En C, un tableau irrégulier peut être implémenté en utilisant un tableau de pointeurs. Chaque élément de ce tableau pointe vers un sous-tableau alloué dynamiquement, où chaque sous-tableau a sa propre longueur variable.

Par exemple :

int *jagged[5];

// Assign memory to each subarray
jagged[0] = malloc(sizeof(int) * 10);
jagged[1] = malloc(sizeof(int) * 3);

// Accessing elements
*jagged[0] = 0;
*(jagged[0]   1) = 1;

*jagged[1] = 1;
*(jagged[1]   1) = 2;
*(jagged[1]   2) = 3;

// Free memory after use
free(jagged[0]);
free(jagged[1]);

Cette méthode permet de créer des tableaux avec des lignes de différentes tailles, simulant le comportement d'un tableau irrégulier. Il est important de noter que la mémoire de chaque sous-tableau doit être allouée dynamiquement et libérée manuellement pour éviter les fuites de mémoire.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3