复制/移动或分配动态c函数

时间:2011-12-29 05:49:46

标签: function pointers copy move allocation

如何在c中复制,移动或分配功能数据? 非常感谢帮助。谢谢。

例如我有:

int  func(int x, int y)
  {
    //instructions
  }

int (*copyOfFunc)(int x, int y);

在某一点上,我想在copyOfFunc中存储func。 我已经知道如何给copyOfFunc提供func的地址,但是如果我想在另一个地址中复制func怎么办?

1 个答案:

答案 0 :(得分:0)

你究竟是什么意思

  

但如果我想在其他地址复制func怎么办?

你想让另一个指针指向你的功能吗?或者您希望函数指针存储在特定的地址中吗?

希望此代码示例可以帮助您

#include<stdio.h>

int func(int x, int y)
{
    return x + y;
}

void do_please(int a, int b, int (*some_func) (int, int)) 
{
    printf("%d, %d ? %d\n", a, b, some_func(a, b));
}


int main () 
{
    printf("1, 2 ? %d\n", func(1, 2));

    int (*my_func) (int, int)  = func;

    do_please(3, 4, my_func);

    int (*other_func) (int, int)  = my_func;

    do_please(5, 6, other_func);

    return 0;
}