構造体を作成して返す定石を教えてください
今は以下のようにしています。関数の戻りで値コピーでなく、ポインタ渡しでやりたいです。

typedef struct tagX01
{
 int val1;
 car *val2;
} *LPX01, X01;

呼び出し

LPX01 x01;

x01 = (LPX01)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(X01));
CreateX01(x01);

BOOL CreateX01(LPX01 target) {
  // ここで値設定
}

この、HeapAllocで領域作っているところを、CreateX01の中に入れたいです。
単に、入れるとx01が初期化されていないとコンパイラが警告してきます。