unsafe static ret hage(hoge** test);と宣言して
hoge[] buf = new hoge[枚数];
fixed (hoge* pBuf = buf) {
hoge* temp = pBuf;
hage(&temp);
}
とかじゃないの
どうせやってることが既に安全じゃないからunsafeでいいよ