我一直在爲這個程序工作五個月了。它是傳感器網絡的實時應用。我在程序的生命週期中創建了幾個鏈表,並使用malloc在鏈接中創建一個新節點。會發生什麼情況是程序突然停止或發瘋並重新啓動。我使用AVR和微控制器是ATMEGA 1281.經過大量調試後,我發現malloc導致了這個問題。在退出創建新鏈接的函數後,我不釋放內存,所以我猜這最終導致堆內存溢出或類似的東西。現在,如果我使用free()函數在使用malloc函數結束時釋放內存,則當控件達到free()時,程序會卡住。這是因爲在調用free()之後內存變得太聚集了嗎?在鏈表中使用malloc的問題
我還創建了參考表,例如,如果'head'是一個新的鏈接列表,並且我創建了另一個名爲current的列表並使其等於head。
table *head;
table *current = head;
功能結束後,如果我用免費
free(current);
current = NULL:
然後程序被困在這裏。
我不知道該怎麼做。我究竟做錯了什麼?有沒有辦法增加堆內存的大小?