Chinaunix

标题: lambda强转成函数指针,运行时崩溃,为什么 [打印本页]

作者: asker160    时间: 2016-02-22 18:55
标题: lambda强转成函数指针,运行时崩溃,为什么
我尝试,把一个lambda转成一个函数指针,然后调用,可惜崩溃了。
这个lambda所要做的事情就是delete掉一个指针而已。

  1. typedef void(*pf)(void*);
  2. struct M
  3. {
  4.     ~M(){ printf("dtor\n"); }
  5. };
  6. int main(void)
  7. {
  8.     M *p = new M;
  9.     auto f = [](M*p){delete p; };
  10.     pf p1 = (pf)&f;
  11.     (*p1)(p);
  12.     return 0;
  13. }
复制代码
为什么呢,为何会崩溃? 这个崩溃还没有办法调试。请大侠指点!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2