これはCにあります
バッファの特定のインデックスに fread() できるかどうか疑問に思っていました。
例えば:
fread(バッファ[10],1,5,ファイル)
buffer[10] = 何か buffer[11] = 何か ... ... buffer[14] = 何か
これはどういうわけか可能ですか?これは、追加のバッファーなしで実行する必要があります。(厳しいメモリ制約)
ありがとう!
fread(buffer+10, 1, 5, file);
やるべきです。カウントがバッファ制限内であることを確認したと思います。
データを保存する場所へのポインタを提供する必要があります。これを行うには 2 つの方法があります (ただし、実際には同じ方法ですが、構文が異なります)。
アドレス取得演算子の使用&
:&buffer[10]
ポインタ演算を使用するには:buffer + 10
fread の最初の引数はポインタです。その場合、これを行うことができます: fread(buffer+10, 1, 5, file) と、目的の動作が得られます。これは、buffer+i が配列「buffer」の i 番目のセルへのポインタであるためです。