[C] probleme de taille...

Fermé
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 - 21 avril 2005 à 11:39
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 21 avril 2005 à 14:12
voila le probleme :

je suis actuellement en train de transformer des fichiers FORTRAN en C et la je tombe sur OS :

une varaible FORTRAN est ainsi : header(6)*80 ...
ce qui donne en C header[80][80][80][80][80][80]...

et monsieur compilo ne veut pas de ca ... quelqu'un pourrait m'aider??

merci :)

<-- mono -->
A voir également:

10 réponses

Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
21 avril 2005 à 11:42
et qu'est-ce qu'il dit monsieur compilo ?
0
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
21 avril 2005 à 11:45
ben il dit [ violamment, vraiment ] :

" psfjmp.c:39: error: size of array `header' is too large "

avec un regard sadique ... en plus !
0
Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120
21 avril 2005 à 11:47
Salut,
header[6][80] ça passe pas ?

A++
0
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
21 avril 2005 à 11:49
ben t sur que ca revient au meme???
0

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

Posez votre question
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
21 avril 2005 à 11:52
En fait j'avais pas réagi, mais tu as vraiment besoin de tout ça ? et ta variable, char ou int ou autre chose ?

car cela représente 80^6 = 262144000000

c'est énorme !!!
0
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
21 avril 2005 à 11:57
ma variable est char..

et oui j'ai vraiment besoin de tout ça ( analyse d'image ) !!!

...mdr... :P

<--- mono -->
0
Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120
21 avril 2005 à 12:00
Désolé j'avais pas percuté non plus.

A++
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 avril 2005 à 12:00
Pour répondre à ton prblème Mono, vient voir le doctor ListeChainnée et hop une petite dose ! Ahhh... c'que ca fais du bien une petite liste chaînée bien croustillante!

Bonne chance je ne vois que ca pour toi !
Au passage : c'est pas [6][80] mais [80][6], et puis en fait, tout compte fait je dirais même, pkoi tu déclare pas un type ou une pauv structure à deux balles qui fait ton [6], et tu fais unt tableau de 80 structure de ce genre, tu vois ce que je veux dire ?

typedef struct bibi {
   ton machin de [6]
};


int main () {
   strcut bibi monmachin[80];
}

Et on dit merci qui mono ??
Merci kij !! de m'avoir répondu alors que je suis déjà partis manger !!!
++
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
21 avril 2005 à 12:01
alors [6][80] n'a rien avoir avec [80][80][80]...

exemple :

->char [3][4] tu auras 3 lignes avec 4 colonnes d'où 3*4 cases (ce qui fait 12...)

->char [3][3][3][3] tu auras 3 lignes qui contiendront 3 lignes qui contiendront 3 lignes qui contiendront 3 colonnes. ce qui fait 3^3 cases (euh... 81 :-) )

donc ce n'est pas du tout la même chose à toi de voir ce tu as besoin.
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
21 avril 2005 à 14:12
un truc à savoir aussi,
int variable[500000];

soit le compilateur refuse, soit ça plante, parce que c'est énorme
et que c'est rarement disponible d'un seul bloc statique.
la seule solution, c'est :
int *variable =(int *) malloc(500000 *sizeof(int)) );

(ne pas oublier
 free(variable);
à la fin de la fonction.)
mais c'est vrai que les listes chainées c'est une excellente solution
pour les systèmes à X dimensions.
a+
0