Autre question de C

Page principale

Répondre à ce message
Auteur: Patrick Dupre
Date:  
À: guilde
Sujet: Autre question de C
Bonjour,

Je vous remercie pours la reponse a ma question precedent.

Maintenant:

Ce progamme de test ne me donne aucune erreur (gcc -Wall) sauf avec
valgrind --leak-check=full -s a.out

LEAK SUMMARY:
==18401==    definitely lost: 16 bytes in 1 blocks
==18401==    indirectly lost: 0 bytes in 0 blocks
==18401==      possibly lost: 0 bytes in 0 blocks
==18401==    still reachable: 0 bytes in 0 blocks
==18401==         suppressed: 0 bytes in 0 blocks
==18401== 
==18401== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)



Elle ne disparait que si je ne fais pas d'appel a change ou/et change2.
Est-ce qu'il y a une explication ?
Merci.

#include <stdlib.h>
#include <math.h>

#define REALLOC(ptr, n) realloc(ptr, (n) * sizeof *(ptr))

typedef struct {
double a ;
} my_str ;


void change (my_str **str, unsigned short int *nb) {
(*nb)++ ;
*str = REALLOC (*str, *nb) ;
}

my_str* change2 (my_str *str, unsigned short int *nb) {
(*nb)++ ;
str = REALLOC (str, *nb) ;
return str ;
}

int main() {
my_str *str1 = NULL ;
unsigned short int N = 0 ;
change (&str1, &N) ;
str1 = change2 (str1, &N) ;
}

===========================================================================
 Patrick DUPRÉ                                 | | email: pdupre@???
 Laboratoire interdisciplinaire Carnot de Bourgogne
 9 Avenue Alain Savary, BP 47870, 21078 DIJON Cedex FRANCE
 Tel: +33 (0)380395988                    | | Room# D114A
===========================================================================