如何在函数中返回指针数组?

TriforceOfKirby

因此,我有一个引用一个类的3个实例的指针数组,我需要创建一个函数来获取对这3个实例的引用并将其返回到该数组中。

这是我一直在尝试的方法:

#include<cstdlib>
#include<cinttypes>
#include<random>

//Random number generator
uint8_t rand(uint8_t max){
    std::default_random_engine generator;
    std::uniform_int_distribution<uint8_t> distribution(0,max);

    return distribution(generator);
}

class MyClass{
    //...
}
myClass[100];

MyClass * getReferences(){ //What should the type of this be?
    MyClass * arrayOfPointers[3];

    for(uint8_t i=0;i<2;++i){
        arrayOfPointers[i]=&myClass[rand(2)];
    }

    return arrayOfPointers;
}

int main(){
    MyClass * arrayOfPointers[3]=getReferences();

    return EXIT_SUCCESS;
}
尼尔·柯克

如前所述,您正在返回指向错误的局部变量的指针。

使用标准库容器来避免C样式数组的陷阱和麻烦。

std::array<MyClass *, 3> getReferences()
{
    std::array<MyClass *, 3> arrayOfPointers;

    for(int i=0; i < 2; ++i) // don't use tiny int types of small for loops. it's not faster and it's harder to maintain
    {
        arrayOfPointers[i] = &myClass[rand(2)];
    }

    return arrayOfPointers;
}

int main()
{
    std::array<MyClass *, 3> arrayOfPointers = getReferences();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java如何在函数中返回拆分数组?

来自分类Dev

如何在python中通过C函数操作C类型指针返回?

来自分类Dev

如何在Objective-C函数中返回C ++指针

来自分类Dev

如何在Rascal中执行“函数指针”?

来自分类Dev

如何从带有指针的函数中返回数组

来自分类Dev

如何在函数指针中包含参数?

来自分类Dev

从C ++中的函数返回指向数组的指针?

来自分类Dev

将指针返回数组的函数

来自分类Dev

如何在c中填充指针数组

来自分类Dev

如何在函数中乘以指针位置?

来自分类Dev

如何在单个数组中返回多个函数值

来自分类Dev

函数返回的数组指针类型

来自分类Dev

如何在调用函数中更新指针?

来自分类Dev

如何在函数中返回指针?

来自分类Dev

如何在C ++中删除指针数组?

来自分类Dev

函数返回指针与函数返回数组在C中

来自分类Dev

如何在JavaScript中编写将返回数组的函数?

来自分类Dev

如何在STL中调用函数指针

来自分类Dev

函数返回数组作为指针

来自分类Dev

如何在C / C ++函数中返回char *数组?

来自分类Dev

从C ++中的函数返回指向数组的指针?

来自分类Dev

如何在C ++中返回矩阵指针?

来自分类Dev

如何从C中的函数返回指针结构数组

来自分类Dev

如何调用函数指针数组中的函数?

来自分类Dev

如何在C++中返回复合函数的函数指针?

来自分类Dev

从函数返回 NULL 的指针数组

来自分类Dev

返回函数指针数组

来自分类Dev

如何在数组中返回函数结果?

来自分类Dev

如何从函数返回指向数组的指针?