なんかお前ら変数のネーミングが気持ち悪いよ。

char *buf = malloc(50); // バッファを確保する。
char *p = buf; //バッファ先頭アドレスをポインタ型で取得
*p = c1;
*++p = c2;
*++p = '\0';


まっとうな神経してたら、こんな感じだろ。