Re: Question c

トップ ページ

このメッセージに返信
著者: Patrick Dupre
日付:  
To: Edgar Bonet
CC: guilde
題目: Re: Question c
OK,

Petite erreur de ma part, je faisais un simple realloc (p, size) sans
reaffecter la valeur au pointeur p = realloc (p, size) ;

Desole et merci.



> 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.
>
>
>


-- 
---
==========================================================================
  Patrick DUPRÉ                      |   |
  Department of Chemistry            |   |    Phone: (44)-(0)-1904-434384
  The University of York             |   |    Fax:   (44)-(0)-1904-432516
  Heslington                         |   |
  York YO10 5DD  United Kingdom      |   |    email: pd520@???
==========================================================================