>>957-958
こうすると、組み込みの配列みたいに要素が連続し、
freeも戻り値のポインタに対してだけ実行すればいいのでやや楽。
ただし要素数があまりにも多ければ無理かもしれないが。

void **SquareAlloc(size_t size, size_t x, size_t y)
{
    size_t offset = sizeof (void*) * x;
    void **pp = malloc(offset + size * x * y);
    if (pp)
    {
        void **ppIndex = pp;
        size_t i;
        for (i = 0; i < x; i++)
            ppIndex[i] = (char *)pp + offset + size * y * i;
    }
    return pp;
}