我想在Berkeley DB的“key.data”中有一个整数值。因为我们在Berkley DB中使用了DBT结构,并且它有“指向字节字符串的指针”,所以我用memeber int为key创建了一个结构,但是现在我在访问存储在结构中的值时遇到了问题。以下是我的代码:
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
访问和整数值。现在,您的键有一个指向字节字符串的指针。我不太确定,我认为它可能是一个空指针,所以它可以指向任何类型的数据。
不管怎样,你可以这样做(假设我上面说的是真的):
key.data = (struct pearson_key *) &keyStruct;
要访问该值:
Value = (key.data)->k