我有这个从文件中读取文本的功能:
uintmax_t ResourcePack::getText(const string& file, char** data)
{
*data = new char[static_cast<size_t>(size) + 1];
fseek(_fileDescriptor, static_cast<long>(begin), SEEK_SET);
fread(*data, static_cast<size_t>(size), 1, _fileDescriptor);
*data[size] = '\0';
}
FILE* _fileDescriptor, uintmax_t size
并uintmax_t begin
进入其他代码,在这里并不重要,但具有正确的值。
fseek
和fread
线条工作正常。实际上,我在 *data 中有文件内容,但是在执行最后一行时,我得到了访问冲突。
为什么我可以写入*data
using fread
,但不能using *data[size] = '\0'
?