我有这个函数从文件中读取文本:
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';
}
Run Code Online (Sandbox Code Playgroud)
FILE* _fileDescriptor, uintmax_t size并uintmax_t begin获得其他代码,这里不重要,但具有正确的值.
fseek和fread线条工作正常.实际上,我有*数据中的文件内容,但是当执行最后一行时,我得到了访问冲突.
为什么我可以写入*data使用fread,但不是using *data[size] = '\0'?