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