【阿摩網站-置頂欄顏色票選問卷】只要填寫就能獲得500Y,結束時間 2024/04/25 11:59:59。 前往查看

教甄◆電腦科專業題庫下載題庫

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


答案:A
難度: 適中
1F
安身立命 國二下 (2016/03/29)
http://hatsukiakio.blogspot.tw/2009/04/c-static.html
heap這塊區域的記憶體是由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塊位置),這是為了讓系統可以去回收這塊記憶體。...
查看完整內容
2F
安身立命 國二下 (2016/04/17)
當資訊為動態配置產生,系統會存放在另外一塊空間,稱之為『Heap』(注意這裡的Heap跟資料結構中的Heap不相關,可別會錯意!)。Heap的區塊專收執行期間動態產生的資料,由於為動態產生故結束點無法由系統來掌握,故需使用者自行回收空間。在C++或Java中利用new語法產生的就是動態配置的物件,需存放於heap中。
在 Multithreaded process 的操作系統中,Heap memory、Global variables屬於同一個 Process 的 Thread 共享的。Register values及Stack memory不共享。

在C語言中若是要於程式執行時決定Array的大小,要使用那種變數? (A)He..-阿摩線上測驗