Pour sur, il manque qlqs "menus" détails:
buffer = (MIB_IFTABLE*) malloc(sizeof(MIB_IFTABLE));
GetIfTable (buffer, &size, TRUE);
size valait 0 à ce 1er test qui ne sert qu'à obtenir le size requis.
Avant de réallouer faut libérer sinon fuite mémoire:
if(buffer) free(buffer);
faut tester le retour de la fonction:
Si ERROR_INSUFFICIENT_BUFFER ok on alloue la valeur de size.
et now ok on alloue la taille requise:
buffer = (MIB_IFTABLE *) malloc (size);
second appel si retourne != NO_ERROR alors aller direct au free car pas bon.
ciao...
[ Lien ]BruNews, MVP VC++