我有一个任意值的数组,所以我将它定义为一个void指针数组,所以我可以指向任何类型的信息(如int
,字符数组等)。但是,我如何实际分配int
?如果我有一个void指针,我该如何将一个int放入它?
就拿这些初始化:
void* data[10];
int x = 100;
我的直觉会想到这一点,但是这给编译错误:
data[0] = malloc(sizeof(int));
*(data[0]) = x;
我也想过用&x
,但我想借此地址(根据我的理解)将在退出程序后被清除。所以,如果我有一个局部变量x
,我将如何正确地将它变成无效指针类型的变量?
或者干脆使用一个工会的数组,忘记malloc – 2009-08-25 11:23:51
确实,好点。我与原来的距离最近。 – 2009-08-25 11:25:42
谢谢,但这将与字符数组指针(char *)一起工作。这会不会在某些平台上导致对齐问题?最后,如果我有一个char [40],如果我只打算使用4,那么保留40个字节似乎会浪费内存。:-) – pbean 2009-08-25 11:36:12