在运行时修改数组大小
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
,但某处仍然会有一些动态分配。
我想知道是否可以在运行时声明数组大小而不使用 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
,但某处仍然会有一些动态分配。