3

圧縮されたアーカイブ内のファイルの先頭にポインターを進める方法を探しています。

メモリに読み込まれたファイルの先頭への文字ポインタがあります。アーカイブ ディレクトリには、各ファイルのオフセットが含まれています。次のように言うことは合法/推奨されますか?

char* beginning; //Imagine this is assigned to the beginning of the file in memory
int file1OffsetBytes = 1000; // Imagine the first file is 1000 bytes into the file

char* file1 = beginning + file1OffsetBytes;

これは悪い考えですか?これを行う別の方法は何ですか?

4

2 に答える 2

4

それはまったく問題ありません。範囲外のジャンプについてのみ注意する必要があります...そしてもう1つ、メモリバッファーオフセットに通常使用されるsize_tor型を次に示します。ssize_t

于 2013-01-22T06:59:46.943 に答える
2

ポインターへの加算 (またはポインターからの減算) は、結果のポインターが配列内の要素または最後の既存要素の直後の存在しない要素を指している限り有効です。言うまでもなく、既存の要素を指すポインターのみを逆参照できます。ポインターを介して要素を読み取る場合は、要素が初期化されている必要があります。

于 2013-01-22T07:00:03.877 に答える