継承した古いコードがあり、それを維持していて、できるだけ変更したくありません。新しいコンパイラではコンパイルできません。
コードには他にもありますが、基本的には (どんなに悪いことであっても) 任意のレコード サイズのレコードのテーブルの先頭に void* を渡すという考えです。この関数は醜くなるので、この関数の外で変更を加えたくありません。unsigned char* にキャストして加算を行ってから void* にキャストしたいだけだと思いますが、正しいキャストなどを理解するのに苦労しています.
助言がありますか?
元のコードは次のとおりです。
foo(const void* recordArrayBasePtr ,ubin32 sizeOfStruct)
{
void * recordPtr;
int row = 9; //for example
recordPtr = const_cast<void *>( recordArrayBasePtr ) + sizeOfStruct * row;
}