| GLib
提供了對C標準 malloc
()、calloc、realloc()、free() 等函式的可攜版本記憶體相關處理函式,例如g_malloc()、
g_malloc0()、g_realloc()、g_free()等函式,例如g_malloc()定義如下: gpointer g_malloc (gsize n_bytes);
g_malloc0()則是會在配置記憶體之後,將所有的值設定為0,以下舉個簡單的動態陣列配置的例子:
#include <glib.h> 一 個執行結果如下所示:
g_malloc()配置失敗,則應用程式會中止,您可以使用g_try_malloc(),在配置失敗後會傳回 NULL值。 如果要建立struct配置,則可以 使用g_new(),使用g_new0()則會將所有strut初始為0,例如: #include <glib.h>
struct _Ball { char color[10]; double radius; }; typedef struct _Ball Ball; int main(int argc, char *argv[]) { Ball *ball = g_new(Ball, 3); .... return 0; } 傳回的指標已經是相對應的型態,無需再進行CAST。 您可以看看 Memory Allocation 了解更多有關 GLib 的記憶體配置函式。 |
|