Il codice corretto e' questo
int *pippo;
pippo = (int *)malloc(sizeof(int)*2);
printf("%d", _msize(pippo));
free(pippo);
Ti faccio notare che
1) la malloc restituisce un puntatore a void; per evitare il relativo warning e' necessario indicare il cast a (int *)
2) la sizeof restituisce la grandezza dell'elemento che hai passato. Se hai passato pippo, restituisce la grandezza di un puntatore. In Win32 un puntatore e' sempre di 4 byte, a prescindere a cosa punti.
3) se passassi *pippo alla sizeof, questa ti restituirebbe la grandezza del tipo di dato puntato da pippo (4 per un int, 2 per uno short ...) ma non la grandezza del buffer allocato
4) per fare quanto chiedi, in VC e' necessario utilizzare la funzione _msize a cui passerai il puntatore all'area (non e' una funzione standard ... con Linux, mi sembra, puoi utilizzare la funzione malloc_size)