網頁

2008年10月2日 星期四

malloc, free

malloc? free?

56 則留言:

  1. malloc:動態配置的記憶體的起始位址指定給指標變數使用,如果記憶體空間不足,則呼叫malloc()函式會傳回NULL。

    free:使用malloc()函式動態配置記憶體之後,若不要再使用動態配置的記憶體空間時,可以使用free()函式指定要釋放的記憶體指標。

    回覆刪除
  2. malloc()函式動態配置的空間
    在整個程式結束前並不會自動歸還給記憶體
    必須使用free()函式將這個空間還給記憶體
    所借的空間
    其記憶體位址是連續的
    知道最前面的記憶體位址
    就可以使用借來的一串連續的空間
    因此malloc回傳的就是這一串空間 最前面的記憶體位址

    回覆刪除
  3. malloc()和free()是C library中的基本function.

    malloc()功能在分配記憶體,傳回位址。
    free()是釋放空間。

    malloc()和free()要小心使用,如果malloc()所得的空間沒有用free()釋放,則應用程式就會一直佔住該記憶體,此一現象稱為memory leakage。
    如果同一空間free了兩次,或已經free了卻繼續使用,也都可能出問題。

    回覆刪除
  4. 再傳統的C語言使用malloc( )函式來配置”動態記憶體”;透過free( )函式釋放動態配備的記憶體資源。

    回覆刪除
  5. malloc是c語言裡宣告動態記憶體的函式
    向電腦要借記憶體的函式,
    就是告訴電腦要借多少記憶體。
    而這個函式取得記憶體後要用free釋放,
    如果沒有用free記憶體會一直存在,
    最後電腦會出現記憶體不足的問題。

    回覆刪除
  6. 動態配置記憶體malloc()函式,呼叫此函式時會配置指定的記憶體大小,所配置的記憶體不做初始值設定。動態配置的記憶體若不再使用,必須用free()函式[釋放記憶體]釋放掉記憶體歸還系統,如此才不會浪費記憶體的空間。

    回覆刪除
  7. malloc()函數
    向作業系統取一塊可用的記憶體空間
    free()函數
    可以釋放malloc()函數配置的記憶體空間

    回覆刪除
  8. malloc和free是動態陣列用在c語言
    malloc是C語言告訴電腦你要借多少個記憶體

    回覆刪除
  9. malloc?
    malloc()函式定義於stdlib.h標題檔中,呼叫此函式時會配置您所指定的記憶體空間大小,此函式不像陣列在編譯階段配置記憶體而是在執行階段需要時才配置記憶體。
    語法:指標變數=(資料型別*)malloc(記憶體空間大小)

    free?
    動態配置的記憶體若不在使用時,必須使用free()函式釋放掉歸還給系統,如此才不會浪費記憶體空間,因此使用malloc()函式動態配置記憶體之後,若不用使用記憶體空間時,可以使用stdlib.h標頭檔所定義的free()函式指定要釋放的記憶體指標。
    語法:free(指標變數)

    回覆刪除
  10. 由鍵盤輸入陣列大小

    回覆刪除
  11. malloc()是要/借記憶體的函式, 而free()是用來還記憶體的函式 可是malloc()不知你要如何用借來的記憶體, 所以malloc()的回傳型態是void *. 一個void的指標. 所以當你呼叫malloc()時要把malloc()回傳值改為你要的型態.而free則是還記憶體 若是沒還
    就會霸佔記憶體空間 甚至可能造成錯誤

    回覆刪除
  12. malloc? free?是C語言裡宣告動態記憶體的函式. 也就是說malloc()是C語言裡像電腦要/借記憶體的函式. 此函數有一個引數, 就是告訴電腦你要/借多少個記憶體

    回覆刪除
  13. malloc()函數:配置記憶體空間

    C語言的程式砠可以呯叫malloc()函數,向作業系統取得一塊可用的記憶體空間。


    free()函數:釋放配置的記憶體空間

    free()函數可以釋放malloc()函數配置的記憶體空間。

    回覆刪除
  14. malloc:

    動態配置記憶體malloc()凾式定義於stdlib.h標頭檔中,呼叫此函式時會配置你所指定的記憶體空間大小,此函式不像陣列在編譯階段配置記憶體而是執行階段需要時才配置記憶體.

    free:

    動態配置的記憶體若不在使用時,必須使用free()凾式釋放掉歸還給系統,如此才不會浪費記憶體空間.

    回覆刪除
  15. malloc是c語言裡宣告動態記憶體的函式
    向電腦要借記憶體的函式,
    就是告訴電腦要借多少記憶體。
    而這個函式取得記憶體後要用free釋放,
    如果沒有用free記憶體會一直存在,
    最後電腦會出現記憶體不足的問題。

    回覆刪除
  16. malloc()函數
    向作業系統取一塊可用的記憶體空間
    free()函數
    可以釋放malloc()函數配置的記憶體空間

    回覆刪除
  17. malloc 函數
    向作業系統取一塊可用的記憶體空間
    free 函數
    可以釋放malloc 函數配置的記憶體空間

    回覆刪除
  18. malloc:配置記憶體空間
    free:釋放配置的記憶體空間

    回覆刪除
  19. 使用malloc()函式動態配置的空間,在整個程式結束前並不會自動歸還給記憶體,您必須使用free()函式將這個空間還給記憶體。程式在持續執行過程中若大量使用malloc()而沒有適當的使用free()的話,由於空間一直沒有歸還,最後將導致整個記憶體空間用盡。

    回覆刪除
  20. malloc()函數:功能在配置記憶體空間。
    free()函數:free()函數和malloc()函數的功能相反,可以釋放配置的記憶體空間。

    回覆刪除
  21. malloc:動態配置記憶體
    free:釋放記憶體

    回覆刪除
  22. malloc:配置記憶體空間

    free:釋放配置的記憶體空間

    回覆刪除
  23. malloc( )是C語言裡宣告動態記憶體的函式

    回覆刪除
  24. *malloc是c語言中宣告動態記憶體的函式,向電腦要借記憶體的函式,就是告訴電腦要借多少記憶體。

    *而malloc這個函式取得記憶體後要用free釋放,如果沒有用free記憶體會一直存在,最後電腦會出現記憶體不足的問題。

    回覆刪除
  25. malloc是宣告動態記憶體的函式,會配置指定記憶體的空間,換而言之就是告訴電腦要借多少記憶體。而這個函式取得記憶體後要用free函式釋放,假如沒有用free記憶體會一直存在,最後電腦會出現記憶體不足的問題。

    補充之前的回答。

    回覆刪除
  26. C語言的程式碼可以呼叫malloc()函數,向作業系統取得一塊可用的記憶體空間 而free()函數可以釋放malloc()函數所配置的記憶體空間

    P.4-2 4-3

    回覆刪除
  27. malloc是動態配置記憶體
    呼叫此函式時會配置您所指定的記憶體空見大小,此函式不像陣列在編譯階段配置記憶體而是在執行階段需要時才配置記憶體

    free是釋放記憶體
    動態配置的記憶體若不再使用時,必須使用free()函式釋放掉歸還給系統,如此才不會浪費記憶體空間

    回覆刪除
  28. malloc向電腦要借記憶體的函式
    free是malloc函式取得的空間要用free函式釋放

    回覆刪除
  29. malloc()是C語言裡宣告動態記憶體的函式. 也就是說malloc()是C語言裡像電腦要借記憶體的函式. 此函數有一個引數, 就是告訴電腦你要借多少個記憶體.

    malloc若不在使用時,必須使用free()函式釋放掉歸還給系統,如此才不會浪費記體空間。

    回覆刪除
  30. 動態配置記憶體不再使用時 用free()函式讓記憶體歸還給系統 用malloc()函式動態配置記憶體後 可使用free()函式來解放指定的記憶體

    回覆刪除
  31. 動態配置的記憶體不再使用,必須使用free()函式釋放掉歸還給系統。
    因此使用malloc()函式動態配置記憶體之後,若不用使用記憶體空間,可以使用free()函式指定的釋放記憶體指標

    回覆刪除
  32. malloc:可以像作業系統許德一快可用的記憶體空間

    free:可以釋放malloc()函數配置的記憶體空間

    回覆刪除
  33. malloc:可以向作業系統取得一塊快可用的記憶體空間

    free:可以釋放malloc()函數配置的記憶體空間

    剛剛字打錯 SORORY~

    回覆刪除
  34. malloc:配置記憶體空間
    free:釋放配置的記憶體空間

    回覆刪除
  35. malloc:
    可以像作業系統取得一塊可用的記憶體空間

    free:
    可以釋放malloc()函數配置的記憶體空間

    回覆刪除
  36. malloc(動態記憶體配置)
    malloc( )函式定義於stdlib.h標頭檔中,呼叫此函式時會配置你所指定的記憶體空間大小,此函式不像陣列在編譯階段配置記憶體而是在執行階段需要時才配置記憶體。若配置成功由於此函式無法確知你所要求的記憶體空間是要指向哪一種資料型別,因此其傳回值設為指向void資料型別的指標,如果配置的記憶體空間不足,則會傳回NULL值。由於malloc( )函式所配置的記憶體是不做出值設定,使用前先做清除的工作。要求配置多少空間來存放資料時,必須考慮資料的長度,因此指標變數的資料型別必須和配置的記憶體空間所使用的資料型別一致,因此在傳回動態記憶體的起始位址時給指定的指標前必須先將預設的void指標進行指標型別轉換。
    語法:指標變數=(資料型別 *)malloc(記憶體空間大小)

    free(釋放記憶體)
    動態配置的記憶若不在使用時,必須使用free( )函式釋放掉歸還系統,如此才不會浪費記憶體空間。因此使用malloc( )函式動態配置記憶體之後,若不用使用記憶體空間時,可以使用stdlib.h標頭檔所定義的free( )函式指定要釋放的記憶體指標。
    語法:free(指標變數)

    C語言無法讓使用者動態決定陣列的大小,往往陣列的大小都必須先宣告其大小在編譯時便被固定,無法在程式執行過程中更改陣列的大小。C語言提供動態記憶體配置,可以讓使用者在程式執行過程中自行決定隨時能應程式需求配置記憶體空間給程式使用。在程式執行得過程中,需要記憶體時才使用malloc( )函式來動態配置一塊記憶體空間,並將此塊配置記憶體空間的起始位址傳回給所指定的指標,接著再移動此指標來存取記憶體位址內的資料,當記憶體不再使用時,再透過free( )函式將此塊記憶體釋放掉歸還給系統。由於malloc( )和free( )函式都定義在stdlib.h標頭檔內,若程式中有使用到這兩個函式,必須在程式開頭將此標頭檔含入到程式中。

    回覆刪除
  37. malloc()是C語言裡宣告動態記憶體的函式. 也就是說malloc()是C語言裡向電腦要/借記憶體的函式. 此函數有一個引數, 就是告訴電腦你要/借多少個記憶體.它是一個配置記憶體空間!

    free()是釋放配置的記憶體空間!

    回覆刪除
  38. malloc會自heap(堆積)取得size個byte, 並傳回該區塊的起始位置。calloc分配nelem個大小為elsize個byte的空間,並把該區塊所有的內容設為0。free則是釋放由malloc或calloc所分配的記憶體空間。

    回覆刪除
  39. malloc()函數:配置記憶體空間
    C語言的程式碼可以呼叫malloc()函數,向作業系統取得一塊可用的記憶體空間。

    free()函數:釋放配置的記憶體空間
    free()函數可以釋放malloc()函數配置的記憶體空間。

    回覆刪除
  40. malloc:C語言的程式碼可以呼叫malloc()函數,向作業系統取得一塊可用的記憶體空間。函數語法是fp=(資料型態*)malloc(sizeof(資料型態));

    free:
    free()函數可以釋放malloc()函數配置的記憶體空間。

    回覆刪除
  41. malloc()函數:配置記憶體空間。
    c語言的程式碼可呼叫malloc()函數,向作業系統取得一塊可用的記憶體空間。

    free()函數:釋放配置的記憶體空間。
    free()函數可以釋放malloc()函數配置的記憶體空間。

    兩者皆屬於動態記憶體,不同於靜態記憶體配置是在編譯階段就配置記憶體空間,動態記憶體配置是等到執行階段,才向作業系統要求配置所需的記憶體空間,可更靈活運用程式所需的記憶體空間。

    回覆刪除
  42. malloc()來配置動態記憶體,free是釋放記憶體

    回覆刪除
  43. malloc:動態配置的記憶體起始位址指定
    給指標變數使用
    如果記憶體空間不足
    則呼叫malloc()函式會傳回NULL

    free:使用malloc()函式動態配置記憶體之後
    若不要再使用動態配置的記憶體空間時
    可以使用free()函式指定要釋放的記憶體指標

    回覆刪除
  44. 使用malloc()函式動態配置的空間,在整個程式結束前並不會自動歸還給記憶體,您必須使用free()函式將這個空間還給記憶體。程式在持續執行過程中若大量使用malloc()而沒有適當的使用free()的話,最後將導致整個記憶體空間用盡。

    回覆刪除
  45. malloc是c語言中宣告動態記憶體的函式,向電腦要借記憶體的函式,就是告訴電腦要借多少記憶體。

    *而malloc這個函式取得記憶體後要用free釋放,如果沒有用free記憶體會一直存在,最後電腦會出現記憶體不足的問題。

    回覆刪除
  46. malloc:動態配置的記憶體的起始位址指定給指標變數使用
    如果記憶體空間不足
    則呼叫malloc()函式會傳回NULL。

    free:使用malloc()函式動態配置記憶體之後
    若不要再使用動態配置的記憶體空間時
    可以使用free()函式指定要釋放的記憶體指標。

    回覆刪除
  47. malloc函數:向作業系統取一塊可用的記憶體空間。
    free函數:可以釋放malloc()函數配置的記憶體空間。

    回覆刪除
  48. malloc()函數:配置記憶體空間
    簡單說就是告訴電腦要借多少記憶體。

    free()函數:釋放配置的記憶體空間
    簡單說就是可以釋放malloc()函數配置的記憶體空間

    回覆刪除
  49. malloc是c語言裡宣告動態記憶體的函式
    而這個函式取得記憶體後要用free釋放

    回覆刪除
  50. malloc, free

    malloc:用來宣告c語言動態記憶體的函式向電腦借記憶體的函式,
    意思就是要告訴電腦要借多少記憶體。
    free:malloc這個函式取得記憶體後要用free釋放,如果沒有用free記憶體會一直存在,電腦會出現記憶體不足的現象。

    回覆刪除
  51. malloc:配置記憶體空間

    free:釋放配置的記憶體空間

    回覆刪除
  52. malloc()函數:配置記憶體空間
    free()函數:釋放配置的記憶體空間

    回覆刪除
  53. malloc()
    是C語言裡向電腦借記憶體的函式. 用來配置記憶體空間。

    free()
    用來釋放配置的記憶體空間。

    回覆刪除
  54. malloc()函數
    向作業系統取一塊可用的記憶體空間

    free()函數
    可以釋放malloc()函數配置的記憶體空間

    回覆刪除
  55. malloc()函數:配置記憶體空間
    C語言的程式砠可以呯叫malloc()函數,向作業系統取得一塊可用的記憶體空間。
    free()函數:釋放配置的記憶體空間
    free()函數可以釋放malloc()函數配置的記憶體空間。

    回覆刪除
  56. malloc是c語言中宣告動態記憶體的函式,向電腦要借記憶體的函式,就是告訴電腦要借多少記憶體。

    malloc這個函式取得記憶體後要用free釋放,如果沒有用free記憶體會一直存在,最後電腦會出現記憶體不足的問題。

    回覆刪除

HTML 編輯器