次のような簡単なプログラムが実行するとむちゃくちゃな文字列を吐き出して
ロックしてしまいます
ロックしてしまいます
#include <dos.h> #include <stdio.h> #include <stdlib.h> #include <stdrom.h> #include <machine.h> #include "386lib.h" void main(void) { int i; char buf[32]; for(i=0;i<100;i++){ sprintf(buf,"%d\n\r",i); putstr(buf); } while(1){ /* リセット待ち */ } }
スタックサイズや配列の大きさを変えると症状が変わるのでメモリの特定の領域
のアクセスがうまく行かない?
のアクセスがうまく行かない?
出力する文字列がsprintf(buf,"Hello C World!\n\r"のように固定文字列だと
全く問題ないのが不思議です
全く問題ないのが不思議です
・・・あ 半角の「);」が化ける~