次の関数があるとします。
Table * lookup_set(Table * t, char * key, ValueType value)
{
int hash = lookup_hash(key);
char * key_copy = strdup(key);
Entry * bucket = t->table[hash];
...
そしてその後
Entry * new = (Entry *) malloc(sizeof(Entry));
new->key = key_copy;
new->value = value;
new->next = NULL;
bucket = new;
return t;
}
t->table[hash] が指すメモリ ブロックを指すように設定したと思われるバケットに new を割り当てても、t->table[hash] の値は new に変更されません。私は何を間違っていますか?