Yes, Even i observed such cases where it didnot get into infinite loop and
sometimes i'm getting a segmentation fault. I think that its an atypical
behavior. But if it gets into infiniteloop then the argument about p getting
allocated after s as mentioned by others is valid i think
--
Thanks & Regards,
Mallik
________________________________
From: suraj_joshi22 <suraj_joshi22@...>
To: c4swimmers@yahoogroups.com
Sent: Friday, November 14, 2008 6:39:58 PM
Subject: [c4swimmers.net] Re: Strange Behavior
--- In c4swimmers@yahoogro ups.com, Mallik <hi_malli2k3@ ...> wrote:
>
> Hi All,
>
> Could you please help me out in analysing this issue:
>
> I really find strange behavior with the following code. If the
statement b is present as below, the for loop is executing infinitely.
But when statement b is replaced with statement a as
> int c[31], s[31];. Then the for loop is exited after n iterations.
Below is my gcc version where i executed the code. Please help me out
in this regard.
>
> int c [30], s[30]; // statement b
>
> #include <stdio.h>
> void change (int a[], int, int);
> int main ()
> {
> int d[3];
> d[0] = 1, d[1] = 10, d[2] = 25;
> int n = 30, k = 3;
> change (d, k, n);
> return 1;
> }
>
> void change (int d[], int k, int n)
> {
> int c [30], s[30]; // statement b
> c[0] = 0;
> int p;
> int min, i, coin = 0;
>
> for (p=1; p<=n; p++)
> {
> c[p] = 0;
> s[p] = 0;
> printf ("\n test : %d \n", p);
> }
> }
>
> gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.0.2)
> Copyright (C) 2006 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.
>
> --
> Thanks & Regards,
> Mallik
>
>
>
>
>
> Dude it did not get into an infinite loop....Compiled using dev c++
ver 4.9.9.0
[Non-text portions of this message have been removed]