Fonction d'allocation d'un tableau dynamique dans une structure
Bonjour,
Voici un cas de débutant dont je ne trouve pas la bonne solution:
Il me faut définir une fonction createArray prenant en paramètre un entier. La fonction allouera dynamiquement une variable de type dynIntArray ne contenant aucun élément mais pouvant stocker sans réallocation jusqu’à n entiers . La fonction renverra l'adresse de la zone mémoire nouvellement allouée.
La struct est :
Code:
1 2 3 4 5
| typedef struct{
int * tab;
unsigned int capacity;
unsigned int size;
} dynIntArray; |
Ma fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| dynIntArray* createArray(unsigned int capacity){
if (capacity > 0) // Il faut qu'il ait au moins une case
{
dynIntArray dyn;
dynIntArray* dyn =(dynIntArray*) malloc(sizeof(dynIntArray)); // On alloue de la mémoire pour le tableau
dyn.tab = (int*) malloc(capacity * sizeof(int));
return dyn ;
}else{
return 0;
}
} |
Je ne comprends pas comment à la fois allouer la mémoire pour le tab dynamique et pour la structure elle-même, cela me semble répétitif et je ne sais donc pas quoi vraiment retourner. Il doit me manquer une information.
De même cela m'aidera pour créer une fonction qui elle libérera la mémoire allouée.
Merci d'avance pour les âmes perdues qui m'aideront :D .