可変長配列は

void func(void *base, int nmemb, int size, /* ... */) {
    char (*work)[size] = base;

    for (int i = 0; i < nmemb; i++) {
        work[i]をあれこれ
    }
}

みたいな感じで使うと便利かもしれないような気がしないでもない。