Bonjour.

Je souhaiterais connaitre la taille d'un tableau dynamique. Voici ce que j'ai trouvé dans la FAQ à ce sujet, mais sincèrement, je pense avoir atteint mes limites en C puisque je ne vois pas très bien ce que je peux faire avec ça. Merci à ceux qui pourront m'aider à y voir plus clair.

Le bout de code en question dont la description est la suivante :

Il n'existe pas en C de fonction permettant de connaître la taille d'un tableau alloué dynamique, il faut donc impérativement conserver cette taille. Voici un petit bout de code gérant une "pseudo-classe" vecteur et fournissant une fonction d'allocation, de désallocation et de récupération de la taille du tableau (en nombre d'éléments).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// TYPE est à remplacer par le type de ton choix
#define TYPE int
 
typedef struct
{
  unsigned long size;
  TYPE *liste;
} vector;
 
void vector_new (vector *v, unsigned long size)
{
  v -> size = size;
  v -> liste = malloc(size * sizeof *(v->liste));
}
 
void vector_delete (vector *v)
{
  free (v -> liste);
  v -> liste = NULL;
  v -> size = 0;
}
 
unsigned long vector_size(vector *v)
{
  return v -> size;
}