这是在C中
我想知道是否有可能将 fread() 到缓冲区的某个索引。
例如:
fread(buffer[10],1,5,file)
缓冲区[10] = 某物缓冲区[11] = 某物......缓冲区[14] = 某物
这可能吗? 这需要在没有任何额外缓冲区的情况下完成。(严格的内存限制)
谢谢!
fread(buffer+10, 1, 5, file);
应该这样做。我相信您确保计数在缓冲区限制范围内。
您需要提供指向要存储数据的位置的指针。有两种方法可以做到这一点(但实际上它只是相同的方法,但语法不同)。
-
地址运算符的使用
&
:&buffer[10]
-
使用指针算法:
buffer + 10
fread 的第一个参数是指针。在这种情况下,你可以这样做:fread(buffer+10, 1, 5, file),你会得到想要的行为。这是因为 buffer+i 是指向数组"buffer"的第 i 个单元格的指针。