Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct tableau_2d
- {
- unsigned nb_lignes;
- unsigned *taille_lignes;
- int **elements;
- };
- int main() {
- struct tableau_2d* tab2d;
- tab2d = malloc(sizeof(struct tableau_2d));
- /*
- {
- {1, 2, 3},
- {4, 5},
- {6, 7, 8, 9, 10},
- {11}
- }
- */
- tab2d->nb_lignes = 4;
- // Lignes de taille : 3, 2, 5, 1
- tab2d->taille_lignes = malloc(sizeof(unsigned) * tab2d->nb_lignes);
- tab2d->taille_lignes[0] = 3;
- tab2d->taille_lignes[1] = 2;
- tab2d->taille_lignes[2] = 5;
- tab2d->taille_lignes[3] = 1;
- // Tableau qui contient des pointeurs vers chacun des "sous-tableaux" (les lignes)
- // Contient des int* donc sizeof(int*)
- tab2d->elements = malloc(sizeof(int*) * tab2d->nb_lignes);
- // Ligne 1 = Tableau de 3 éléments. Contient des int donc sizeof(int)
- tab2d->elements[0] = malloc(sizeof(int) * tab2d->taille_lignes[0]);
- tab2d->elements[0][0] = 1;
- tab2d->elements[0][1] = 2;
- tab2d->elements[0][2] = 3;
- // Ligne 2 = Tableau de 2 éléments.
- tab2d->elements[1] = malloc(sizeof(int) * tab2d->taille_lignes[1]);
- tab2d->elements[1][0] = 4;
- tab2d->elements[1][1] = 5;
- // Ligne 3 = Tableau de 5 éléments.
- tab2d->elements[2] = malloc(sizeof(int) * tab2d->taille_lignes[2]);
- tab2d->elements[2][0] = 6;
- tab2d->elements[2][1] = 7;
- tab2d->elements[2][2] = 8;
- tab2d->elements[2][3] = 9;
- tab2d->elements[2][4] = 10;
- // Ligne 4 = Tableau de 1 élément.
- tab2d->elements[3] = malloc(sizeof(int) * tab2d->taille_lignes[3]);
- tab2d->elements[3][0] = 11;
- printf("%d\n", tab2d->elements[2][4]);
- // -> 10. Ligne 2 (donc troisième), élément 4 (donc cinquième)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement