problème Mémoire avant appel au main ?
Bonjour,
Il semble que j'ai un problème de mémoire.
voici les extraits du programme qui posent problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #define MAX_FONCTIONS_UTILISATEURS 50000
typedef struct
{
char* nom;
int nb;
int type;
int debut; /* Numero de la ligne ou se trouve l'accolade de debut. */
int fin; /* Numero de la ligne ou se trouve l'accolade de fin : -1 => fonction non trouvee */
int nb_appels; /* Nombre d'appels interessant */
int nb_requetes_Sybase;
int nb_requetes_Oracle;
int nb_chaines_SQL;
} lFU;
typedef struct
{
lFU liste[MAX_FONCTIONS_UTILISATEURS];
int nb_fct_uti;
} FU;
...
int main(int argc, char** argv)
{
...
FU fu;
...
} |
et lorsque je compile, ça passe. Lorsque je lance, ça plante. En utilisant GDB, je m'aperçois que ça plante dès la ligne d'appel du main.
Code:
1 2 3 4 5
| Program received signal SIGSEGV, Segmentation fault.
0x0040fc63 in probe ()
(gdb) bt
#0 0x0040fc63 in probe ()
#1 0x00401520 in mainCRTStartup () at lister_tables_batch.c:341 |
en redéfinissant
Code:
#define MAX_FONCTIONS_UTILISATEURS 40000
ça fonctionne.
pourquoi est-ce que cela planterait à 50000 ??? la structure lFu n'est pas si énorme !!
Pour info, je suis sous environnement Cygwin Windows.