一、读取大文件
不要一行行读取(太慢),先将文件内容全部读入内存(动态分配的),再在内存的基础上操作 。
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的文件】或者可以用链表的形式来做,就避免了连续大内存分配出错的情况 。
- 优扣帮200家商家使用 常州优扣帮平民怎么拿到优扣
- 小学生英语入门怎么教 小学生英语要如何学
- 是否已经收回成本了 三峡的使用期是多少年
- 怎么选择适合自己的文胸 怎么购买适合自己的胸罩
- 花盆精炼度怎么获得 玫瑰小镇里花盆的精炼怎么获得
- 水养富贵竹发黄需要将黄掉的叶子剪除,可以在容器中放几个铁钉, 水养富贵竹发黄怎么办
- psp充电器坏了怎么办 PSP不能充电
- 这是部以悲剧结局的故事,男主角为了保家卫国而死 亦筝笙结局到底怎么样了
- 希利苏斯联盟可以从黑海岸的米奈希尔港坐船到塞拉摩,之后穿过尘 魔兽世界希利苏斯怎么去
- 超声吸脂手术是利用高能低频超声波的物理化学效应 超声吸脂怎么瘦手臂