Salut !
Le samedi 21 juin, Patrick Dupre a écrit :
> Je fais un malloc d'un double,
> ensuite pour accroitre la taille de mon tableau, je fais un
> realloc d'un double en accroissant la taille chaque fois.
>
> Il semble que cette reallocation ait un limite, typiquement, vers
> 16892. Est-ce que c'est un problem hard, soft ou juste une mauvaise
> facon d'accroitre dynamique la taille d'un tableau ?
Tu peux donner un minimal exemple de code qui montre le problème ? Chez
moi un million de doubles ne lui pose pas de problème, et c'est une
vieille machine.
[edgar@pulsar tmp]$ cat > realloc.c << EOF
> #include <stdio.h>
> #include <stdlib.h>
>
> int main(void)
> {
> double *p;
>
> p = malloc(1000 * sizeof *p);
> if (!p) { perror("malloc()"); return EXIT_FAILURE; }
>
> p = realloc(p, 1000000 * sizeof *p);
> if (!p) { perror("realloc()"); return EXIT_FAILURE; }
>
> puts("OK.");
> return EXIT_SUCCESS;
> }
> EOF
[edgar@pulsar tmp]$ gcc -O -Wall -Wextra realloc.c -o realloc
[edgar@pulsar tmp]$ ./realloc
OK.
[edgar@pulsar tmp]$
Edgar.