グローバル位置でdp = malloc(sizeof(struct hoge) + dp->a*1)をしてみましたが
C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
error C2040: 'dp': 'int []' は 'hoge *' と間接操作のレベルが異なります。
error C2440: '初期化中' : 'void *' から 'int []' に変換できません。
と出ます