gpt4 book ai didi

c++ - 返回指向固定大小数组 C++ 的数组的指针

转载 作者:太空狗 更新时间:2023-10-29 21:41:19 25 4
gpt4 key购买 nike

我试着到处搜索,但因为这是一个如此令人费解的问题,所以我无法找到我要找的东西。我正在尝试创建函数/方法,但我不知道如何指定其返回类型,应该是:

double(*)[3]

我希望能够使用这样的查询:

double R[3][3];
query ( &output, R );

但不是 R[3][3] , 我有一个 vector std::vector<double> R_vect (9);我这样做:

query ( &output, reinterpret_cast<double(*)[3]> (R_vect.data()) );

这是一团糟,所以我想实现一个函数使其可读,比如:

ReturnType Cast ( const std::vector<double>& R_vect ) {
return reinterpret_cast<double(*)[3]> (R_vect.data());
}

但我无法指定返回类型。我使用了 typedef,它有效:

typedef double DesiredCast[3];
DesiredCast* Cast ( ... ) { ... }

但我仍然很好奇如何在没有 typedef 的情况下做到这一点。

最佳答案

您应该始终对这些复杂的返回类型进行 typedef,而不是要求读者理清它们。 (或者重新设计,这样你就没有复杂的类型了!)

但是您可以按照模式进行操作。要声明这种类型的变量,您可以这样做

double (*var)[3];

为了使它成为一个函数,你只需将通常的装饰放在名称旁边的通常位置,尽管它看起来很糟糕。例如使用名为 zint 参数:

double (*func(int z))[3]
{
// ...
}

顺便说一句,cdecl一旦您学会了它的语言,就会为您做到这一点。

关于c++ - 返回指向固定大小数组 C++ 的数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com