Предположим, что у меня есть следующие функции:Изменение значения указатель указывает на с псевдонимом
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-> таблица [хеш] не будет меняются на новые, даже если я назначил новый для bucket, который, я думаю, решил указать на блок памяти, на который указывает t-> table [hash]. Что я делаю не так?
вы изменяете 'bucket' указатель сам, а не значение, он указывает на. –
Извините, как мне объявить 'bucket' таким образом, что, когда я устанавливаю' bucket' в качестве новой 'Entry', тогда' t-> table [hash] 'также будет назначена эта новая запись? Я хочу иметь возможность делать такие вещи, как 'bucket = bucket-> next', которые я не думаю, что могу делать с' t-> table [hash] '. – dyxh