我想传递一个指向变量的指针。有时它是一个整数,有时可能是一个字符。在下面的示例中,我将指针传递p
给CreateObject
但是当我尝试检索指针指向的变量的值时,我得到了一个尴尬的结果:
int i =0;
int *p = malloc(sizeof(int));
*p = i;
ObjectP object = CreateObject(p);
假设我想将其转换回 int 并显示它:
void CreateObject(void *key)
{
printf("%d\n", (int)key);
}
我得到:160637064 而不是 0。我得到的是什么而不是我之前分配的整数以及如何检索它而不是当前值?