void hoge(char *foo)
{
foo に文字列などを入れる処理
}
main()
{
char buf[128];
hoge(buf);
printf("%s", buf);
}
このようなコードでbufのサイズが50のときはうまく表示、100の時は変な文字記号がまじる、
200の時はうまく表示、1000の時は変な文字記号が・・・の様なことがおこります。
悩んだ末、ふと static char buf[128]; のようにしたところ常にうまく表示されるようになりました。
staticで確保しないとメモリがアヒャヒャなことになるという結論に達したのですが、どうもすっきりしません。
これってプログラムを書く上で当たり前のことなのでしょうか?どなたかバッサリヤってください。