Manipulation de grand tableaux d'entier

Résolu
oistrakh Messages postés 5 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 7 juillet 2008 - 26 mars 2008 à 11:23
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 - 26 mars 2008 à 15:54
Bonjour,
Pour acceler un programme VBA, j'ai introduit une dll dans laquelle notamment
je cherche a remplir des tableaux tres grand ( j'aimerais atteindre 10^10 elements...) avec des entier entre 1 a 10.
je voudrais ensuite affecter a mon tableau (que je dois garder de type short int pour une exportation vba) le reste de i modulo 10 i allant de 1 a nb_val
le probleme est que si j'utilise fmod je doit avoir des elements de type float a long double
Ce que je ne comprends pas c'est que le type long reste quand meme un nombre entier, normalement l'operateur % devrait marcher.

Merci de vos suggestions.

Mon "code":

#include

"stdafx.h"#include

"stdlib.h"#include

"math.h"#include

"ma_fonction.h"long

double
__stdcall seedgeneration(
short
int*seed_array ,
long nb_val){
long

i;
for

(i=0; i<nb_val; i++){seed_array[i] =

i%10;}

return

(0); }

4 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 24
26 mars 2008 à 12:15
Tu peux remplacer les long par des int qui sont indentiques (même taille : sizeof(int) == sizeof(long)).
Cdt
3
oistrakh Messages postés 5 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 7 juillet 2008
26 mars 2008 à 12:25
merci beaucoup!
0
oistrakh Messages postés 5 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 7 juillet 2008
26 mars 2008 à 15:49
Je ne peux pas stocker plus de 250 millions d elements dans mon tableau
apres j'ai l'erreur "out of memory"

pourtant idealement j'aimerait tatonner le 100 milliards...


qq1 aurait il une suggestion?

d'avance merci
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 24
26 mars 2008 à 15:54
En enregistrant dans un fichier texte au fur et a mesure.
Cdt  
0