3つの静的変数を持つ関数があります。奇妙ですが、3つの静的変数の1つが再初期化されることがあります。
static uchar * Foo( uchar c_par1, uchar c_par2, uchar c_par3 )
{
static char s_var1[10];
static uchar c_var2 = 0;
static uchar c_var3 = 0;
.....
return s_var1;
}
上記の場合、c_var2が再統合されることがあります。
これらの各変数のメモリ位置も出力しており、変更されることはないため、再統合されると確信しています。s_var1がc_var2を上書きする可能性があると思われましたが、これら2つの変数のメモリ位置はかなり離れています。