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).
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;
} |
Partager