我有以下结构定义:
struct info_link {
char url[100];
http_response *(*worker)(http_request *request, char *arguments);
long url_length;
};
如您所见,“worker”是一个函数指针。
现在,我有以下功能:
http_response *info_show_providers(http_request *request, char *arguments) {
char *test = new char[100];
long i = 5;
}
我定义了一个简单的 info_link 数组,其中包含 1 个成员,如下所示:
info_link internal_links[] = {
{"/show_providers", info_show_providers, 15}
};
我正在尝试致电:
internal_links[0].worker(x,x);
并且该程序确实访问了“info_show_providers”函数,但每次我这样做时它都会在“new char [100]”函数上失败。
它抛出 SIGABRT。
难道是我调用函数指针的方式不对吗?或者破坏堆栈?
应该如何正确完成?