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 27
| dynIntArray* createArray( unsigned capacity ) {
if ( capacity == 0u ) // Retourne NULL si le paramètre transmis n'est pas correct
return NULL;
dynIntArray* dyn = malloc( sizeof(*dyn) );
dyn.tab = malloc( capacity * sizeof(int) );
dyn.capacity = capacity; // noter capacité
dyn.size = 0u; // vide pour le moment
return dyn;
}
bool changeArrayCapacity( dynIntArray* pdyn , unsigned capacity ) {
if ( capacity == 0u )
return false; // erreur paramètre
int* newTab = realloc( pdyn->tab , capacity * sizeof(int) );
if ( newTab == NULL )
return false; // erreur mémoire
pdyn->tab = newTab;
pdyn->capacity = capacity; // noter nouvelle capacité
if ( pdyn->capacity < pdyn->size )
pdyn->size = pdyn->capacity; // a pu perdre des éléments
return true;
} |
Partager