アドレスで何かを渡そうとしています。この場合は char 配列ですが、何でもかまいません。
void rickyHashTableAdd(rickyHashTable *table, char *key, void *value)
{
rickyHashTableEntry entry;
entry.key = strdup(key);
entry.value = value;
table->entries[0] = entry;
}
int rickyHashTableGet(rickyHashTable *table, char *key, void *value)
{
value = table->entries[0].value;
}
int main (void)
{
void *val;
val = "what up";
rickyHashTableAdd(&symbolTable, "ok", val);
void *val2;
rickyHashTableGet(&symbolTable, "ok", val2);
printf("result: %s\n", val2);
}
rickyHashTableGet 関数内の 'value' の値を確認すると正しいのですが、関数が呼び出された後にメインにチェックインすると問題が発生します。正しいメモリアドレスに設定されていないようです。どうしてこれなの?