問題詳情

在C語言中若是要於程式執行時決定Array的大小,要使用那種變數?
(A)Heap-dynamicvariable
(B)Stack-dynamicvariable
(C)Staticvariable
(D)以上皆非

參考答案

答案:A
難度:困難0.277027
統計:A(41),B(60),C(21),D(9),E(1)

用户評論

【用戶】安身立命

【年級】國二下

【評論內容】http://hatsukiakio.blogspot.tw/2009/04/c-static.htmlheap這塊區域的記憶體是由user來決定其增減的,他主要存放所有"new"出來的dynamic variable,也就是在runtime期間請求的記憶體,直得一提的是,java所有object都放在heap裡面,這是為了可以讓GC實現。因為new出來的東西是user請求,他主要回傳一個指標(Pointer),所以相關回收動作也要由user去做,因為系統不會幫user回收new出來的記憶體。系統只會去回收stack上的memory,如果不回收這些new出來的記憶體,而又用不到他就會造成memory leak,所以new出來的東西要由user自己去delete。在此特別提一下,通常delete之後會再讓該指標指向NULL(第0塊位置),這是為了讓系統可以去回收這塊記憶體。...

【用戶】安身立命

【年級】國二下

【評論內容】當資訊為動態配置產生,系統會存放在另外一塊空間,稱之為『Heap』(注意這裡的Heap跟資料結構中的Heap不相關,可別會錯意!)。Heap的區塊專收執行期間動態產生的資料,由於為動態產生故結束點無法由系統來掌握,故需使用者自行回收空間。在C++或Java中利用new語法產生的就是動態配置的物件,需存放於heap中。在 Multithreaded process 的操作系統中,Heap memory、Global variables屬於同一個 Process 的 Thread 共享的。Register values及Stack memory不共享。