I'm not 100% sure 
    (void * * &)rows
is guaranteed to work.
    *(void * * *)(&rows) or
    *const_cast<void * * *)(&rows)

is probably less ambiguous  - but I don't know if the first is guaranteed to work.