Static memory allocation

Patrick Percot ppercot@free.fr
Fri Sep 24 12:51:00 GMT 2004


On Fri, 24 Sep 2004 11:57:08 +0100 (BST), Ankit Jain <ankitjain1580@yahoo.com> wrote

> hi

Hi,

> 
> well i had tried to enquire about this problem
> 
> i was not able to find the solution. i know it workds
> when i declare the array globally. i know if i use
> malloc it will work and i am using the same in my
> program
> 
> but this question is again in my mind that what could
> be the reason that it dosent work here on my system
> because last time when i asked this question on some
> sytem it was able to run which they said that they
> have less emory then that of my system
> 
> my system config.: redhat linux 9.0 +512 RAM
> this is what my terminal displays
> 
> [ankit@Ankit fft]$ cat try2.c
> #include <stdio.h>
> int main()
> {
> double a[1450][1450];
>  a[1450][0]=999.999;

You do not just have a stack  problem : The upper bound is not 1450, but
1449, because the first index is 0. 

So  a[1449][0] has  more chances  to  work correctly,  but the  problems
generated  by  such a  fault  can be  insidious  and  very difficult  to
discover, because the error can appear later in your program.

>  printf("%lf\n",a[1450][0]);
>  return 0;
> }
> [ankit@Ankit fft]$ gcc try2.c
> [ankit@Ankit fft]$ ./a.out
> Segmentation fault
> [ankit@Ankit fft]$
> 
> i just want to know that if there is some problem
> related to stack how t oget rid of it
> 
> thanks
> 
> ANkit
> 
> 
> 
> 
> ________________________________________________________________________
> Yahoo! Messenger - Communicate instantly..."Ping" 
> your friends today! Download Messenger Now 
> http://uk.messenger.yahoo.com/download/index.html
> 

À+
PP
-- 
Groupe Morbihannais d'Utilisateurs de Logiciels Libres http://www.tuxbihan.org
GPG fingerprint = 1A4F E154 3D2C A20E E4CA  A543 7951 C5C2 E44A A0B5

Patrick Percot.



More information about the Gcc-help mailing list