use*_*343 4 c++ linux ubuntu gcc
我使用以下代码将文件读入chararcter数组.现在,对于小文件(比如2 MB),它正在正常执行,但对于大文件(140 MB),在我的18 GB UBUNTU服务器中它正在给予segmentation fault.任何人都可以帮我解决这个问题吗?我认为18 GB就足以将240 MB的文件保存到内存中.我使用64位UBUNTU并使用g ++进行编译.
ifstream is;
char chararray [fileSize] ;
is.read(chararray, fileSize) ;
Run Code Online (Sandbox Code Playgroud)
如果数组是局部变量,则会出现堆栈溢出,因为它不适合堆栈.而是在堆上分配"数组",直接使用new或间接使用std::vector.
或者使用内存映射.看mmap功能.