400です。すいませんマシンがトラぶってレス遅れました。
私の質問は、以下の様なコードにおいて

#include<stdio.h>

voidfoo(void )
{
inti;
chara[4];

for( i = 0; i < ???; i++ )
a[i] = 0x00;

}
voidmain(void )
{
foo();
printf( "I'm safe\n" );

}
 ???が4を超えた場合、必ず飛ぶかどうかという質問です。
 Unix系の場合、スタックは上位から下位へ積まれますので、???が5になれば
リターンアドレスを書き換えて飛びそうな気がします。
 しかし、Win系の場合、スタックは下位から上位に積まれるので、飛びはしない
のではという事です。
 言葉が足りなくてすいません。