On Jun 16, 2005, at 12:35 AM, Sankara Rameswaran wrote:
hi
according to ansi c standards all declarations have to to be at the
starting of the block..
which means the program below should not work.. i compiled this using
gcc
For C90 yes but not for C99.
gcc (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
but it is working fine..
this might be fine with g++ but i used gcc...
int main()
{
int i;
scanf("%d",&i);
int a[i];
a[i-1]=128;
printf("%d",a[i-1]);
}
is this a bug or just for compatability with c++...
Not this is for C99 compatibility. In fact you are using VLAs which
are part of C99
and not part of C++ at all.
Thanks,
Andrew Pinski