[C] probleme de taille...

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 -->

10 réponses

  1. et qu'est-ce qu'il dit monsieur compilo ?
    0
    1. ben il dit [ violamment, vraiment ] :

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

      avec un regard sadique ... en plus !
      0
      1. Salut,
        header[6][80] ça passe pas ?

        A++
        0
        1. ben t sur que ca revient au meme???
          0
          1. 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
            1. ma variable est char..

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

              ...mdr... :P

              <--- mono -->
              0
              1. Désolé j'avais pas percuté non plus.

                A++
                0
                1. Contributeur
                  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
                  1. 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
                    1. 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