私はSDCC 3.1.0でこのコードをコンパイルし実行し、(WinCPC 0.9.26ワインで実行されていると、エミュレーション下)のAmstrad CPC 464上でそれを実行します。SDCCとのmalloc() - よりもはるかに少ないメモリを割り当てるには、利用可能である
void _test_malloc()
{
long idx = 0;
while (1)
{
if (malloc(5))
{
printf("%ld\r\n", ++idx);
}
else
{
printf("done");
break;
}
}
}
... 92 malloc()に一貫してタップアウトします。私はそれを460バイトにして、2つの質問につなげます:
このシステムではmalloc()は何をしていますか?私は、ソートの振る舞いは、64kBのシステムと128kBのシステムで一貫しているにも64kBのシステム上の大きさより多くのストレージの順序のために
を期待していました。手動バンクの切り替えのように、追加メモリにアクセスするために何らかの魔法を実行する必要がありますか?
なぜ5バイト単位で増加するのですか?大きなチャンクを割り当てると(ちょうど興味がある)、何が起こりますか?その他の質問:どのくらいのスタックスペースを取ることができますか? –