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 :
Ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct{ int * tab; unsigned int capacity; unsigned int size; } dynIntArray;
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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 .
Partager