まぁ char *buf = (char*)malloc( size ); と
書ければすむ話なんですがね。better C としてのC++利用。

初期化は、こういうことを為かもしれませんね。
char *a = NULL; char *b = NULL;

if( !a = malloc( size ) ) goto error;
if( !b = malloc( size ) ) goto error;
--snip--
error:
free(a); free(b)