変数へのポインタを渡したい。整数の場合もあれば、文字の場合もあります。以下の例では、ポインター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);
}
0 ではなく 160637064 が表示されます。以前に割り当てた整数の代わりに何を取得していますか?また、現在の値の代わりにそれを取得するにはどうすればよいですか?