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

那很好。你只需要注意越界跳转......还有一件事:这是一个通常用于内存缓冲区偏移量的size_tor类型。ssize_t

于 2013-01-22T06:59:46.943 回答
2

只要结果指针仍然指向数组中的一个元素或最后一个现有元素之后不存在的元素,添加到指针(或从中减去)是合法的。不用说,您只能取消引用指向现有元素的指针,并且如果您通过指针读取该元素,则该元素必须已初始化。

于 2013-01-22T07:00:03.877 回答