【发布时间】:2011-01-12 09:54:19
【问题描述】:
我正在尝试构建一个 char 数组来存储函数的返回值。在以下函数中,数据存储在 *****valv** 中。如何构建外部变量来访问数据?
int credis_lrange(REDIS rhnd, const char *key,
int start, int end, char ***valv)
{
int rc;
if ((rc = cr_sendfandreceive(rhnd, CR_MULTIBULK, "LRANGE %s %d %d\r\n",
key, start, end)) == 0)
{
*valv = rhnd->reply.multibulk.bulks;
rc = rhnd->reply.multibulk.len;
}
return rc;
}
解决方案:
char **elements;
int size = credis_lrange(this->redis,"object_2",600,603,&elements);
for (int i=0; i<size;i++) {
cout << "element: " << elements[i] << endl;
}
谢谢大家!
【问题讨论】:
-
并不是说它直接回答了你的问题,而是数组在 C++ 中是“非首选”的,你应该使用 STL 容器类,可能是向量。
-
credis 库是一个 C 库。我可以在 C 中使用 C++ 向量吗?
-
没有任何可靠的方式...如果您了解
std::vector是如何在该编译器/机器/库组合上实现的,理论上您可以做一些事情,但这是不值得的。
标签: c++ multidimensional-array redis