怎么避免了連續大內存分配出錯的情況 如何讀取大于500M的文件

一、讀取大文件
不要一行行讀取(太慢),先將文件內容全部讀入內存(動態分配的),再在內存的基礎上操作 。
ftell() 文件操作:偏移到文件末尾
或者一部分比如4MB,每次分批次讀取到內存,可能要判斷最后是否換行 。
問題:
可能讀入超過幾百MB,程序報錯 。
原因可能是機器連續的物理內存不足 。
二、三維數組(大內存)動態分配出錯
使用連續的二維數組指針 。連續二維+一個數組內存 。
int* (*data)[SIZE2][SIZE3] = new int*[SIZE1][SIZE2][SIZE3]; // 申請三維數組方法
int *p = data[0][0][0];// 從頭,方便寫
int* (*data)[4] = new int*[3][4]; // 申請非連續三維數組方法 int[3][4][5]
data[i][j][k] = content; // 寫數據
【怎么避免了連續大內存分配出錯的情況 如何讀取大于500M的文件】或者可以用鏈表的形式來做,就避免了連續大內存分配出錯的情況 。