Advertisement
iSach

Untitled

Jan 14th, 2024
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct tableau_2d
  5. {
  6. unsigned nb_lignes;
  7. unsigned *taille_lignes;
  8. int **elements;
  9. };
  10.  
  11. int main() {
  12. struct tableau_2d* tab2d;
  13.  
  14. tab2d = malloc(sizeof(struct tableau_2d));
  15.  
  16. /*
  17. {
  18. {1, 2, 3},
  19. {4, 5},
  20. {6, 7, 8, 9, 10},
  21. {11}
  22. }
  23. */
  24.  
  25. tab2d->nb_lignes = 4;
  26. // Lignes de taille : 3, 2, 5, 1
  27. tab2d->taille_lignes = malloc(sizeof(unsigned) * tab2d->nb_lignes);
  28. tab2d->taille_lignes[0] = 3;
  29. tab2d->taille_lignes[1] = 2;
  30. tab2d->taille_lignes[2] = 5;
  31. tab2d->taille_lignes[3] = 1;
  32.  
  33. // Tableau qui contient des pointeurs vers chacun des "sous-tableaux" (les lignes)
  34. // Contient des int* donc sizeof(int*)
  35. tab2d->elements = malloc(sizeof(int*) * tab2d->nb_lignes);
  36.  
  37. // Ligne 1 = Tableau de 3 éléments. Contient des int donc sizeof(int)
  38. tab2d->elements[0] = malloc(sizeof(int) * tab2d->taille_lignes[0]);
  39. tab2d->elements[0][0] = 1;
  40. tab2d->elements[0][1] = 2;
  41. tab2d->elements[0][2] = 3;
  42.  
  43. // Ligne 2 = Tableau de 2 éléments.
  44. tab2d->elements[1] = malloc(sizeof(int) * tab2d->taille_lignes[1]);
  45. tab2d->elements[1][0] = 4;
  46. tab2d->elements[1][1] = 5;
  47.  
  48. // Ligne 3 = Tableau de 5 éléments.
  49. tab2d->elements[2] = malloc(sizeof(int) * tab2d->taille_lignes[2]);
  50. tab2d->elements[2][0] = 6;
  51. tab2d->elements[2][1] = 7;
  52. tab2d->elements[2][2] = 8;
  53. tab2d->elements[2][3] = 9;
  54. tab2d->elements[2][4] = 10;
  55.  
  56. // Ligne 4 = Tableau de 1 élément.
  57. tab2d->elements[3] = malloc(sizeof(int) * tab2d->taille_lignes[3]);
  58. tab2d->elements[3][0] = 11;
  59.  
  60. printf("%d\n", tab2d->elements[2][4]);
  61. // -> 10. Ligne 2 (donc troisième), élément 4 (donc cinquième)
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement