Question

Je devrais commencer par dire que je travaille sur une application pour PC de poche et que les fichiers de données sont stockés sur des cartes SD.

J'ai une application qui doit créer un tableau de taille x. Malloc échoue à chaque fois.

J'ai un fichier de 1 Go sur une carte de 4 Go.
J'ai 64 Mo de mémoire embarquée (ram / data / application / os)
Je ne peux pas traiter les données car le tableau dont j'ai besoin est trop grand.
Accéder à une carte SD est presque aussi rapide que la RAM.
Je travaille en C ++ (mfc)

Quel est le meilleur moyen d'accéder au fichier que je vais utiliser comme tableau?
Ou y aurait-il une autre façon de faire cela?

Était-ce utile?

La solution

Vous devez créer un fichier suffisamment grand pour le tableau, correctement rempli (selon GetSystemInfo), puis mapper le fichier avec CreateFileMapping / MapViewOfFile.

Au moins, ce serait mon premier essai - il pourrait y avoir des restrictions sur la taille d’un fichier mappé sur CE.

Autres conseils

Vous devez créer une fenêtre de n enregistrements (qui tiendra dans la mémoire) et la déplacer de manière à conserver les enregistrements sur lesquels vous travaillez. Je ne maîtrise pas assez bien le MFC pour vous donner un exemple de code, mais ce ne serait pas si difficile.

En c #, j'écrirais un IEnumerable personnalisé! < T >

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top