2012-11-13 50 views
1

我是新來的這個低級別的東西。我目前正在學習arduino。我目前正在使用Arduino Mega 2560,在我們的課程中我們正在練習內存管理。我是一名電腦內存管理專家,但不知何故,我在arduino中遇到了一些棘手的問題。例如:內存分配 - Arduino

Arduino的有8192B,我試圖用uint_16溢出,所以我做的十六分之八千一百九十二數組是512,所以我做

uint16_t A[512+1]; 

嗯,我預計到事業溢出。

我的概念有什麼問題?

+6

一個uint16_t有兩個字節,所以爲什麼給你16分? – mkaes

+1

_The Arduino的已8192B_你的意思8192Bit或你的意思是8192Byte = 8KB的? –

+0

是的,我剛剛打破了愚蠢的記錄。我需要睡覺。 –

回答

2

你似乎在爲你的字節混淆你的位。

假設sizeof (uint16_t)是2上的Arduino的,你的513個16位整數陣列使用僅1026字節,這很容易適合。

0

另外在Arduino的當內存滿了,你沒有得到任何錯誤或警告。微控制器只是重新啓動。

+0

我跟蹤堆和堆棧。 –