Re: maximum size in c

Top Page

Reply to this message
Author: Xavier Bestel
Date:  
To: Patrick Dupre
CC: jeanluctux, guilde
Subject: Re: maximum size in c
Moi non plus je ne comprends rien.
Quel est le programme qui plante ?

    Xav


On Mon, 2008-11-17 at 21:54 +0000, Patrick Dupre wrote:
> Merci,
>
> Mais je comprends rien,
> C'est exact, le segmentation fault est du a:
> for (i = 0 ; i < nb_pt ; i++) fprintf (file_out,"%11.5f %g\n", x [i], y
> [i]) ;
> qui est a la fin du programme.
> Si je fait :
> for (i = 0 ; i < nb_pt ; i++) fprintf (file_out,"%11.5f %g\n", x [i]) ;
>
> Ca marche,
>
> de meme ceci marche:
>
> #define MAXDBL 4194304
> double x[MAXDBL], y [MAXDBL] ;
> int main () {
>      unsigned long int i;
>      unsigned long int nb_pt = MAXDBL ;
>      FILE *file_out ;
>      file_out = fopen ("tmp.txt", "w") ;
>      for(i = 0 ; i < MAXDBL ; i++)
>      {
>          x [i] = 1.0 ;
>      };
>      for (i = 0 ; i < nb_pt ; i++) fprintf (file_out, "%11.5f %g\n", x [i], 
> y [i]) ;
>      return 0;
> };

>
> Ou est l'erreur ?
>
>
> >
> > Regarde si tu n'aurais pas dclar ton tableau l'intrieure d'une fonction.
> > Si oui, ca va mettre ton gros tableau dans la pile, et l, c'est une autre
> > histoire.
> >
> > Jean-Luc.
> >
> >
> > Le Monday 17 November 2008 21.27:40 Patrick Dupre, vous avez crit:
> >> Bonsoir,
> >>
> >> Je declare:
> >> double x [1048576]
> >> et j'obtiens un segmenation fault !
> >> double x [524288]
> >> est OK.
> >>
> >> est-ce qu'il y a des tailles maximum en c ?
> >> J'ai 1 Go de RAm, et j'ai deux variable telles que x !
> >
> >
> >
>
> -- 
> ---
> ==========================================================================
>   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@???
> ==========================================================================