nom*_*and 6 c++ crash warnings
我在将文件加载到内存时遇到了麻烦,我的编译器警告我一些我没有掌握的东西.怎么了?
C:\Users\Caroline\Desktop\Prog\literature.cpp:236:15: warning: deleting array 'char chbuffer [(((sizetype)((ssizetype)fsize)) + 1)]' [enabled by default]
Run Code Online (Sandbox Code Playgroud)
功能:
bool loadfile(string & buffer, const char fpath[])
{
ifstream file(fpath, ios::binary);
if(!file) return false;
file.seekg(0, ios::end);
long fsize = file.tellg();
file.clear();
file.seekg(0);
char chbuffer[fsize + 1];
file.read(chbuffer, fsize);
buffer = chbuffer;
delete [] chbuffer;
return true;
}
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 11
你不能delete自动分配数组.删除delete [] chbuffer;声明.
一般情况下,delete仅在配对时使用new.你可以chbuffer像这样分配:
char *chbuffer = new char[fsize + 1];
Run Code Online (Sandbox Code Playgroud)
在这种情况下你会想要使用delete [] chbuffer.