在运行时修改数组大小

Modifying array size at runtime

我想知道是否可以在运行时声明数组大小而不使用 new 关键字。

struct myKernel
{
        uint8_t **var;
        myKernel(){}
        myKernel(const int number = 2)
        {
//I want to do something like
//var = new int*[number]; but not allocate it on the heap
           *var = a[number];
        }
        void operator()   
       {
        //do stuff here with the var array

       }
           
};

如果你想在运行时分配一些东西(即基于运行时信息),那么你必须使用基于堆的分配。

满足您需要的另一种方法是使用 std::vector 并使用 resize,但某处仍然会有一些动态分配。