Bonjour,

J'utilise un AIX 5.3 et compile mes programmes C avec Visual Age 6.0

Dans un programme C le code suivant fonctionne très bien lorsque mon programme est compilé en 32 bits :

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

...

/* The path must be removed from the file name */
   for (i_id=0, i_lg=strlen(s_namfile); s_namfile[i_lg] != '/'; i_lg--)
     {
     i_id = i_id + 1;
     }

   for (i_id=0, i_lg=i_lg+1; s_namfile[i_lg] != '\0'; i_lg++)
     {
     s_parfile[i_id] = s_namfile[i_lg];
     i_id = i_id + 1;
     }
   s_parfile[i_id] = '\0';

...
Mais une fois compilé en 64 bits j'ai un coredump qui apparait lors de son exécution.
Un dépassement de mémoire j'imagine...
La partie du code qui pose pb est celle en gras.

Comment ne plus avoir ce dépassement de mémoire en 64 bits ? Il faut jouer avec les \0 je pense, mais je n'y connait rien en C.

Pouvez-vous m'aider svp ?

Merci