求助:怎么定义和声明函数数组,谢谢!

wsypnfdl 2007-10-06 11:30:32
请教:
是这样:
在 a.h 文件里
void f1();
void f2();
void f3();
void f();

在 a.cpp 里

void f1()
{
}

void f2()
{
}

void f3()
{
}

void f()
{
f1();
f2();
f3();
}

我想 把 f1() , f2() , f3()
弄成 一个数组

void f()
{
int i = 0;
for (i = 0; i < 3; i++)
{
f1_3(i);
}
}


各位大哥
void f1_3 这个数组函数应该怎么声明和定义啊?

谢谢!
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
erwin1984 2007-10-06
  • 打赏
  • 举报
回复
不需要释放,这个不是new或者malloc开辟的空间,仅仅是一个指针数组而已。
wsypnfdl 2007-10-06
  • 打赏
  • 举报
回复
谢谢楼上两位大哥:
typedef void (*func)();
(*p[3])() = { f1, f2, f3};


指针需要释放吗?

如果需要的话,在哪里释放

ckt 2007-10-06
  • 打赏
  • 举报
回复


void (*p[3])() = { f1, f2, f3};

void f()
{
for (int i = 0; i < 3; i++)
{
(*(p+i))();
}

}


ckt 2007-10-06
  • 打赏
  • 举报
回复

void (*p[3])() = { f1, f2, f3};

void f()
{
for (int i = 0; i < 3; i++)
{
(*(p+i))();
}

}

rwxrxrx 2007-10-06
  • 打赏
  • 举报
回复
1 #include <iostream>
2 using namespace std;
3
4 typedef void (*func)();
5
6 void f1()
7 {
8 cout << "f1()" << endl;
9 }
10
11 void f2()
12 {
13 cout << "f2()" << endl;
14 }
15
16 int main(void)
17 {
18 func arr[2];
19
20 arr[0] = f1;
21 arr[1] = f2;
22
23 arr[0]();
24 arr[1]();
25
26 return 0;
27 }
ckt 2007-10-06
  • 打赏
  • 举报
回复
这里的指针并非指向堆上的空间,不需要释放

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧