Array deletion warning in load file function

I have problems loading a file into memory, my compiler warns me about something I don’t understand. What's the matter?

C:\Users\Caroline\Desktop\Prog\literature.cpp:236:15: warning: deleting array 'char chbuffer [(((sizetype)((ssizetype)fsize)) + 1)]' [enabled by default] 

:

 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; } 
+4
source share
1 answer

You cannot delete automatically allocated array. Delete the delete [] chbuffer; .

In general, delete is only used in conjunction with new . You could highlight chbuffer as follows:

 char *chbuffer = new char[fsize + 1]; 

in this case, you would like to use delete [] chbuffer .

+9
source

All Articles