CreateFileMapping関数は、メモリマップファイルへのポインタを返します。そのメモリマッピングを配列として扱いたいと思います。ここでC++の配列へのポインタへの変換
は、私は基本的に何をしたいです:
char Array[] = (char*) CreateFileMapping(...);
どうやら私は単に私の腕を振ると、ポインタが現在配列であることを宣言することはできませんを除き。
どうすればいいですか?私は大きなファイルであまりにも多くのメモリを使用するので、ポインターが指している値を配列にコピーしたくない。
おかげで、
恐ろしく、ありがとう! –
配列とポインタでsizeof()を呼び出すと、異なる値が返されることに注意してください。ポインタは、配列ではなくポインタのサイズを返します。つまり、配列の長さのトリックを行う代わりに、配列のサイズに沿って送る必要があります。 char(* p)[] = ... 'を実行することで真のポインターを作成し、'(* p)[123] = 'x';を使ってメンバーを得ることができますまだそれを渡すことなくサイズを取得します。 –