On 16 Dec 2024 17:21 +0100, from martelli...@gmail.com (Franco Martelli): >> Put in something to count the number of calls to malloc() and free() >> respectively. Don't forget calls outside of loops. > > There isn't calls to malloc() or free() outside loops. What do you mean?
>From a quick re-glance through your code... if ( head == NULL ) { ==> head = last = (DIGIT *) malloc( sizeof ( DIGIT ) ); head->dgt = last->dgt = i; head->next = head->prev = last->next = last->prev = NULL; return; } /* Otherwise, find the last element in the list */ for (p = head; p->next != NULL; p = p->next) ; /* null statement */ ==> p->next = (DIGIT *) malloc( sizeof ( DIGIT ) ); and for ( const DIGIT *p = head; p->next != NULL; p = p->next ) if ( p->prev != NULL ) free( p->prev ); ==> free( last ); certainly look to me like they're outside of loops. -- Michael Kjörling 🔗 https://michael.kjorling.se