dan*_*dan 2 c++ multidimensional-array redis
我正在尝试构建一个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;
}
Run Code Online (Sandbox Code Playgroud)
解:
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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢大家!
char ***element[size];
Run Code Online (Sandbox Code Playgroud)
不完全是一个3D数组,而是一个size指向指针的指针元素数组char.
使用以下任何一种方法:
char e[ D1 ][ D2 ][ D3 ]; /* D1, D2, D3 are integral constants */
char *e[ D2 ][ D3 ];
char e[][ D2 ][ D3 ];
Run Code Online (Sandbox Code Playgroud)
此外,您可以通过简单地将speficying e作为函数的参数来传递它.
在进一步阅读时,看起来该参数实际上不是3D数组,而是指向C风格字符串数组的指针.注意,语法可能相同,意图不同.
在这种情况下,您需要做两件事:
char数组最后,您将把这个字符串数组的地址传递给credis_lrange函数.
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |