我想在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

08-16 02:28