C言語なら、ぬるぽに聞け! Part 〈53〉
■ このスレッドは過去ログ倉庫に格納されています
0418デフォルトの名無しさん
NGNG私の質問は、以下の様なコードにおいて
#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系の場合、スタックは下位から上位に積まれるので、飛びはしない
のではという事です。
言葉が足りなくてすいません。
■ このスレッドは過去ログ倉庫に格納されています