char mem[8];
uint64_t *memory{(uint64_t*)(void*)&mem[0]};
std::cout << "diff: " << (void*)memory - (void*)(&mem[0]) << std::endl;
簡単な例、GCCとのエラーメッセージは次のとおりです。無効なC++の使用はなぜですか?
error: invalid use of ‘void’
std::cout << "diff: " << (void*)memory - (void*)(&mem[0]) << std::endl;
あなたは何をしようとしていますか? 'char []'を単一の 'uint64_t'として再解釈しますか? – CoryKramer
'void *'に対してポインタ演算を行うことはできません。 – Kevin
@CoryKramerうん、かなり 'char []'を 'uint64_t'配列に変換しようとしています。私はそれが簡単だろうと思ったが、これは私を困惑させてしまった... – user3728501