我是新來的這個低級別的東西。我目前正在學習arduino。我目前正在使用Arduino Mega 2560,在我們的課程中我們正在練習內存管理。我是一名電腦內存管理專家,但不知何故,我在arduino中遇到了一些棘手的問題。例如:內存分配 - Arduino
Arduino的有8192B,我試圖用uint_16溢出,所以我做的十六分之八千一百九十二數組是512,所以我做
uint16_t A[512+1];
嗯,我預計到事業溢出。
我的概念有什麼問題?
我是新來的這個低級別的東西。我目前正在學習arduino。我目前正在使用Arduino Mega 2560,在我們的課程中我們正在練習內存管理。我是一名電腦內存管理專家,但不知何故,我在arduino中遇到了一些棘手的問題。例如:內存分配 - Arduino
Arduino的有8192B,我試圖用uint_16溢出,所以我做的十六分之八千一百九十二數組是512,所以我做
uint16_t A[512+1];
嗯,我預計到事業溢出。
我的概念有什麼問題?
你似乎在爲你的字節混淆你的位。
假設sizeof (uint16_t)
是2上的Arduino的,你的513個16位整數陣列使用僅1026字節,這很容易適合。
另外在Arduino的當內存滿了,你沒有得到任何錯誤或警告。微控制器只是重新啓動。
我跟蹤堆和堆棧。 –
一個uint16_t有兩個字節,所以爲什麼給你16分? – mkaes
_The Arduino的已8192B_你的意思8192Bit或你的意思是8192Byte = 8KB的? –
是的,我剛剛打破了愚蠢的記錄。我需要睡覺。 –