Re: Question c

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: Question c
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.