補足します。
>>444で、エラーがどうすれば直るか。ということを述べている場所で
>「g_Countを宣言する箇所を変更」した場合にも
>エラーは直る場合があります。

とあります。どういった事か分かりにくかったと思い、具体例を出します。

>>442のソースで、
APP App[MAX];
int g_Count=0;
これを、
int g_Count=0;
APP App[MAX];
や、
APP App[MAX];
char str[255]; // この行は意味がありません。エラーをなくす為にです。
int g_Count=0;

とした場合、iの値が32の時g_Countのアドレスが保持されたり
MAX定数を100000にすると、iが798の時g_Countのアドレスが保持されたり
(↑の場合、当然MAX定数が従来の100としてあるときはエラーになりません)
といった、現象が起きます。
補足を終わりますm(__)m