0

これはCにあります

バッファの特定のインデックスに fread() できるかどうか疑問に思っていました。

例えば:

fread(バッファ[10],1,5,ファイル)

buffer[10] = 何か buffer[11] = 何か ... ... buffer[14] = 何か

これはどういうわけか可能ですか?これは、追加のバッファーなしで実行する必要があります。(厳しいメモリ制約)

ありがとう!

4

3 に答える 3

1
fread(buffer+10, 1, 5, file);

やるべきです。カウントがバッファ制限内であることを確認したと思います。

于 2013-02-02T20:30:01.327 に答える
1

データを保存する場所へのポインタを提供する必要があります。これを行うには 2 つの方法があります (ただし、実際には同じ方法ですが、構文が異なります)。

  1. アドレス取得演算子の使用&:&buffer[10]

  2. ポインタ演算を使用するには:buffer + 10

于 2013-02-02T20:30:49.907 に答える
0

fread の最初の引数はポインタです。その場合、これを行うことができます: fread(buffer+10, 1, 5, file) と、目的の動作が得られます。これは、buffer+i が配列「buffer」の i 番目のセルへのポインタであるためです。

于 2013-02-02T20:30:49.857 に答える