我無法理解這樣的結果......問題使用空指針作爲函數參數
代碼:
void foo(void * key, size_t key_sz) {
HashItem *item = malloc(sizeof(HashItem));
printf("[%d]\n", (int)key);
...
item->key = malloc(key_sz);
memcpy(item->key, key, key_sz);
}
void bar(int num) {
foo(&num, sizeof(int));
}
而且我這樣做呼叫:bar(900011009);
但printf()
輸出是:
[-1074593956]
我真的需要key
是vo id指針,我該如何解決這個問題?
是的,我試過'(int *)* key',但沒有工作,並且'*(int *)key'從來沒有出現在我身上。 – 2010-04-07 01:22:11