Bonjour,

Il semble que j'ai un problème de mémoire.

voici les extraits du programme qui posent problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
#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.