當我使用SDCC 3.1.0編譯此代碼並在Amstrad CPC 464(在仿真環境下運行,WinCPC 0.9.26在Wine上運行)上運行它時:SDCC和malloc() - 分配的內存少得多
void _test_malloc()
{
long idx = 0;
while (1)
{
if (malloc(5))
{
printf("%ld\r\n", ++idx);
}
else
{
printf("done");
break;
}
}
}
......它一直在92 malloc()s上敲擊。我使460字節,這導致我幾個問題:
什麼是malloc()在這個系統上做什麼?即使在64kB系統上,我也希望有更多存儲量的存儲空間
該行爲在64kB系統和128kB系統上是一致的;我是否必須執行某種魔術來訪問額外的內存,如手動銀行切換?
爲什麼要增加5個字節?當你分配更大的塊(只是好奇)會發生什麼?其他問題:您允許使用多少堆棧空間? –