【发布时间】:2013-01-12 17:32:02
【问题描述】:
我正在编写一个小的 Lua 绑定库。目前我提供了一个非常简单的结构来保存键/值,其中我的value 是void pointer。
struct kvPair {
enum EVENT_TYPE type;
char *key;
void *value;
};
typedef struct kvPair KeyValuePair;
KeyValuePair kvPairWithNumber(char *key, float number)
{
KeyValuePair kv;
float *aux = malloc(sizeof(float)); // <-- help
*aux = number;
kv.key = key;
kv.type = NUMBER;
kv.value = aux;
return kv;
}
我想知道这种用例......处理 malloc 的好方法是什么?我真的不想这样做:
if (aux == NULL) {
exit(0);
}
也许我可以预先分配一块内存,也可以用我自己更简单的实现覆盖 malloc 调用(使用简单堆栈的自定义内存分配器?)
希望收到反馈和示例,首选简单。
【问题讨论】:
-
为什么不将值存储在结构中(可能在联合中)而不是存储指针?
-
那可能会更好...你能写一个代码示例吗? :)
-
我最终使用了 C 联合。