我想在 Berkeley DB 中为我的“key.data”设置一个整数值。由于我们在 Berkley DB 中使用 DBT 结构,并且它具有“指向字节字符串的指针”,因此我创建了一个带有 memeber int 的键结构。但是现在我在访问存储在结构中的值时遇到了问题。下面是我的代码:
struct pearson_key{
int k;
};
struct pearson_key keyStruct;
DBT key
memset(&key, 0, sizeof(key));
memset(&keyStruct, 0, sizeof(struct pearson_key));
int k = 1;
keyStruct.k = k;
key.data = &keyStruct;
printf("value = %s",(char*)keyStruct);
key.size = sizeof(keyStruct);
打印空白值。我是 C 和结构的新手。我知道我的结构有问题,但不知道如何纠正它。提前致谢。
最佳答案
如果我是正确的,你想通过你的键
访问和整数值。现在,您的 key 有一个指向字节字符串的指针。我不太确定,我认为它可能是一个空指针(void *)
,这样它就可以指向任何类型的数据。
无论如何你可以做以下事情(假设我上面说的是真的):
key.data = (struct pearson_key *) &keyStruct;
访问值:
Value = (key.data)->k
关于c - 使用 C 访问 Berkeley DB 结构内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7185935/