不明白求解釋,就是每一步是怎么搞的?怎么會向0地址寫入的?
這是什么情況
Single丶love
2016-08-15 16:50:49
TA貢獻6條經驗 獲得超5個贊
沒看到這里是while(1)嗎,也就是這個程序會一直循環下去,那么為什么會退出呢?
這就要看malloc()這個函數了,這是一個動態申請內存空間的函數,這里把它放在while(1)死循環里,就會一直循環申請一個字節(因為這里寫的是申請一個字節)內存空間,這個函數申請的空間是在堆當中申請的,那么請問堆的空間能有多大呢?是不是遲早會被申請完?對的吧?遲早會將空間申請完,那么此時,就是我們常說的內存泄漏,最后內存分配完了,但是就會退出嗎?最后會在非法訪問內存時異常退出。
那么所以我們要養成好習慣,一是申請內存之后一點要檢查是否申請成功,二是malloc之后,一定要free掉申請的內存。
舉報