c - 使用 C 访问 Berkeley DB 结构内的值

标签 c pointers berkeley-db structure

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

相关文章:

c - 将动态分配的指针传递给 pthread 的正确方法是什么

c - 如何使用 eof 计算字符串的字母数 (ansi c)

c - 模拟串口

c - 将指针char参数传递给线程中的函数

c - 函数调用的误区

c++ - Fortran 中的指针与 C/C++ 中的指针究竟有何不同?

C 结构体指针从第一个元素到最后一个元素

java - 编程决定 java 或 .Net,db 或无 db

centos - Rpmdb 损坏

linux - 从 CLI 检查 Berkeley DB 文件