Taille maximum d une valeur

cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006 - 2 mars 2006 à 17:11
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 3 mars 2006 à 14:23
bonjour a tous

je suis en train de faire un petit prog en c++ sous linux et j ai un petit prob ...

j aimerai savoir si cette declaration de variable : long int file[256][256][60]; n est pas trop grande ??
car j ai l impression qe c cette ligne qui me plante le prog meme si ca ne pose pas de pb pour la compilation alors que si mon file fait long int file[128][128][60]; ca ne pose pas de pb ca tourne tout seul

est ce q on peut avoir + grand mais en gardant des entiers !!

merci maloudre

12 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 mars 2006 à 17:17
Je pense que déja ca dépend si tu le déclares en global ou en local. Si dans aucun des deux cas ca ne marche, tu devra utiliser de l'allocation dynamique (malloc ou new)
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
2 mars 2006 à 17:19
salut

c qoi la difference entre les 2 declarations il vaut mieux laquelle ??
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 mars 2006 à 17:23
La version locale va essayer de réserver l'espace sur la pile, et 15Mo sur la pile ca peut faire un peu trop. Avec file en variable globale ca marche pas?
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
2 mars 2006 à 17:44
ok
mais comment tu fais pour declarer en global concretement ??

pour l instant c declarer dans le main juste avant son utilisation
( car c un rajout de code ...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 mars 2006 à 17:45
long int file[256][256][60];

int main()
{
...
}
0
luther13 Messages postés 5 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 29 juin 2006
2 mars 2006 à 17:55
Les variables globales, c'est mal.
Mais pour eviter le stack overflow, pourquoi pas.

Perso, j'opterai pour une allocation dynamique.

Luther13
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 mars 2006 à 17:57
Je veux bien que ce soit mal, mais pourquoi?
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 mars 2006 à 21:11
Les variables globales c'est pas mal du tout. Ça permet d'avoir acces à des donnée a partir de n'inporte quel point dans ton programme. C'est pas juste pour une fonction, c'est pour tout le programme. Faut juste savoir comment ne pas en abuser pour ne pas gober la memoire vive.
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
3 mars 2006 à 10:37
bonjour a tous

alors voila

j ai essaye de faire ma declaration avec une variable globale

ca marche !!!

merci beaucoup

maloudre
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
3 mars 2006 à 13:17
alors voila

apres moulte et moulte essai
il s avere qe ca marcche toujours pas avec une taille superieur a 128*128*60
j ai essayer en declaration globale

par contre avec une allocation dynamique je lui rentre

main{
long int *file[i][j][k];
file[i][j][k]=new long int;

...

delete file;

avec i=j=256 k=100
avec pour idee d aller jusqu a 512*512*512
est ce que c bon ??
par ce qe ca compile mais le prog ne marche pas

merci maloudre
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
3 mars 2006 à 14:12
je reviens sur la declaration en global

qd je compile il me met une erreur : varible-size type declared outside of any function
donc ca ne marche pas non + !!!

je sais + qoi faire help !!!
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 mars 2006 à 14:23
Normal, si tu mets i, j et k au lieu de mettre des constantes
0
Rejoignez-nous