【问题标题】:How to convert array float* to float**?如何将数组 float* 转换为 float**?
【发布时间】:2014-06-28 03:34:58
【问题描述】:

我有一个函数需要这样的参数:

fooReplace(float** input, float** output, int blockSize);

我需要将包含两个数据数组的缓冲区传递给fooReplace。我可以像这样访问缓冲区数据:

float* data = buffer->getData(); // return float*;
int mBlockSize = buffer->getOffset(); //

但我不知道如何将其转换为float**,因此我可以将数据传递给fooReplace

我知道这是基本的 C++ 东西,但我被困在这个问题上好几天了,我找不到任何解决方案。

【问题讨论】:

  • output 形式参数的期望有两种实际可能性:(1) 指向float 数组指针的指针,因此这实际上是一个输出参数(指向数组将被更新),或(2)指向float数组的指针数组的指针,它将更新哪些数据。人们当然可以回答每一种实际的可能性。但是,如果您在问题中包含必要的信息,那就更好了。
  • @πάντα ῥεῖ > 对不起,你是对的
  • 从函数的名称(即fooReplace)来看,通过大胆的猜测,我认为float** 用于通过引用传递您的数组。

标签: c++ arrays pointers floating-point buffer


【解决方案1】:

如果是为了演员你可以做

float* data = buffer->getData(); // return float*;
int mBlockSize = buffer->getOffset(); //
float** data_ptr = &data; // is of type float**

但是作为@Cheers 和hth。 - Alf 在他的评论中指出,你应该试着理解为什么fooReplace 想要一个指向指针的指针。

【讨论】:

    猜你喜欢
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多