gpt4 book ai didi

c++ - 在什么情况下可能需要动态分配指向函数的指针?

转载 作者:搜寻专家 更新时间:2023-10-31 00:51:19 26 4
gpt4 key购买 nike

来自@Ayxan 对 this answer 的评论在 Is delete *p an alternative to delete [] p? ,例如:

int (**p) () = new (int (*[7]) ());
delete [] p;

最佳答案

例如,您可能想要执行任意操作的列表(您在编译时不知道):

using Op = void (*)();

static void run(Op * ops, int n)
{
for (int i = 0; i < n; ++i)
ops[i]();
}

void foo();
void bar();

void g()
{
constexpr int n = 3;
Op * ops = new Op[n];

ops[0] = foo;
ops[1] = bar;
ops[2] = foo;

run(ops, n);

delete [] ops;
}

当然,在 C++ 中,您通常会将其保存在容器中并也使用函数对象,但这是为了解决原始问题。

关于c++ - 在什么情况下可能需要动态分配指向函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55524710/

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