当前位置:  开发笔记 > 编程语言 > 正文

C++如何使用和传递三维char数组?

如何解决《C++如何使用和传递三维char数组?》经验,为你挑选了1个好方法。

我正在尝试构建一个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

谢谢大家!



1> dirkgently..:
char ***element[size];

不完全是一个3D数组,而是一个size指向指针的指针元素数组char.

使用以下任何一种方法:

char e[ D1 ][ D2 ][ D3 ]; /* D1, D2, D3 are integral constants */
char *e[ D2 ][ D3 ];
char e[][ D2 ][ D3 ];

此外,您可以通过简单地将speficying e作为函数的参数来传递它.

在进一步阅读时,看起来该参数实际上不是3D数组,而是指向C风格字符串数组的指针.注意,语法可能相同,意图不同.

在这种情况下,您需要做两件事:

指定要在数组中存储的字符串数

对于每个字符串

分配内存

将字符串数据复制到char数组

最后,您将把这个字符串数组的地址传递给credis_lrange函数.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有