Не печатается правильное значение «key.data» в БД Berkeley с использованием C - PullRequest
1 голос
/ 26 августа 2011

Я новичок в Berkeley DB и учусь с помощью онлайн-гида.Теперь у меня есть следующий код:

DB *dbp;
DBT key, data;
int ret, t_ret;
int k = 1;

key.data = &(k);
key.size = sizeof(k);
memset(&key, 0, sizeof(key));

if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
{
    printf("db: %d: key stored.\n", (char*)key.data);
}

Теперь оператор printf вместо возврата значения "1" возвращает что-то ещеНе знаю, где я иду не так.

1 Ответ

1 голос
/ 26 августа 2011

Поскольку key.data является пустым *, вам нужно разыменовать его, чтобы получить значение. Попробуйте:

printf("db: %d: key stored.\n", *(int*)key.data);
...