40 #ifndef picox_core_detail_xstdlib_h_ 41 #define picox_core_detail_xstdlib_h_ 85 static inline void*
x_calloc(
size_t nmemb,
size_t size)
106 memset(ptr, 0, size);
113 static inline void*
x_realloc(
void *old_mem,
size_t size)
115 void*
const new_mem =
x_malloc(size);
122 memcpy(new_mem, old_mem, size);
138 static inline void*
x_realloc2(
void *old_mem,
size_t old_size,
size_t new_size)
140 if (old_size == new_size)
143 void*
const new_mem =
x_malloc(new_size);
153 if (old_size > new_size)
154 memcpy(new_mem, old_mem, new_size);
156 memcpy(new_mem, old_mem, old_size);
170 #define X_SAFE_FREE(ptr) (x_free((ptr)), (ptr) = NULL) 183 #endif // picox_core_detail_xstdlib_h_ static void * x_realloc2(void *old_mem, size_t old_size, size_t new_size)
old_memが指すold_sizeバイトのメモリブロックをnew_sizeバイトに再割当てして返します ...
Definition: xstdlib.h:138
static void * x_calloc(size_t nmemb, size_t size)
sizeバイトの要素nmemb個からなる配列にメモリを割り当て0初期化して返します
Definition: xstdlib.h:85
static void * x_realloc(void *old_mem, size_t size)
old_memが指すメモリブロックをsizeバイトに再割当てして返します
Definition: xstdlib.h:113
static void x_free(void *ptr)
ptrが指すメモリ空間を開放します
Definition: xstdlib.h:73
#define X_UNUSED(x)
コンパイラによる未使用変数の警告を抑制するマクロです。
Definition: xutils.h:161
static void * x_malloc(size_t size)
sizeバイトのメモリを割り当てて返します
Definition: xstdlib.h:59
#define X_CONF_MALLOC(size)
動的メモリ確保関数を設定します。未指定時はmalloc()が使用されます。
Definition: xconfig.h:143
#define X_CONF_FREE(ptr)
メモリ解放関数を設定します。未指定時はfree()が使用されます。
Definition: xconfig.h:151
static void * x_calloc2(size_t size)
sizeバイトのメモリを割り当て、0初期化して返します
Definition: xstdlib.h:102
#define X_ASSERT_MALLOC_NULL(expr)
動的メモリ確保のNULL検査用アサートです
Definition: xdebug.h:308