我有一個任意值的數組,所以我將它定義爲一個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