Я объявляю структурный узел и создаю его экземпляр с некоторыми значениями в методе. Оператор print в методе add_map возвращает то же самое для обоих вызовов метода.
Я хочу, чтобы они указывали на различные области памяти и сохраняли выделенные значения.
Как я могу это исправить? Спасибо!
int main()
// ... Ptr and ptr2 are two different buffers, st is the pointer
// to the hash table.
add_map(ptr, st, n);
add_map(ptr2, st, a);
printf("%-d\n", buf_getint(ptr, st));
printf("%-d\n", buf_getint(ptr2, st));
}
// source file
void add_map(struct buf* bst, struct node** ptr, uint8_t val) {
int8_t hash_val;
hash_val = hash_str(bst);
struct node* pt;
pt = *(ptr + hash_val);
while (pt != NULL) pt = pt->ptr;
struct node new_item = {.val = val, .buf = *bst, .ptr = NULL};
new_item.buf.pos = bst->pos;
printf("\n%x\n", &new_item);
*(ptr + hash_val) = &new_item;
}