1

我应该先说我正在开发一款袖珍 PC 应用程序,并且数据文件保存在 sd 卡上。

我有一个应用程序必须创建一个大小为 x 的数组。malloc 每次都失败。

我在 4 gig 卡上有一个 1 gig 文件。
我有 64 兆的板载内存 (ram/data/application/os)
我无法处理数据,因为我需要的数组太大了。
访问 sd 卡几乎和 ram 一样快。
我正在使用 C++ (mfc)

访问我将用作数组的文件的最佳方法是什么?
或者会有不同的方法来做到这一点?

4

2 回答 2

2

您应该为数组创建一个足够大的文件,适当地填充(根据 GetSystemInfo),并使用 CreateFileMapping/MapViewOfFile 映射文件。

至少,这将是我的第一次尝试——CE 上映射文件的大小可能会受到限制。

于 2008-11-01T19:51:16.980 回答
0

您需要创建一个包含 n 条记录的窗口(适合内存)并移动该窗口,以便将您正在处理的记录保留在其中。我在 mfc 中不够流利,无法为您提供代码示例,但这并不难。

在 c# 中,我会编写一个自定义 IEnumerable<T>

于 2008-11-01T19:51:48.260 回答