| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1396 人关注过本帖
标题:[求助]这个程序为什么不能运行
只看楼主 加入收藏
qingfen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-12-23
收藏
 问题点数:0 回复次数:21 
[求助]这个程序为什么不能运行
#include <stdio.h>
#include <conio.h>

typedef struct
{
void (*pFun) ();
}_Fun_Test;

void _pf()
{
puts("OK");
}

int main(void)
{
_Fun_Test pfun;

pfun.pFun = _pf;

pfun.pFun();
}
上面是我在网上找到了在结构体内定义函数的例子,在编译中没有出错。但就是运行不了,我想问一下大家这是为什么呢,我用的是WINXP系统/。谢谢!!
搜索更多相关主题的帖子: 运行 
2006-05-25 13:36
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 


pfun.pFun();

getch();
}


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-05-25 13:40
coloar123
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2005-1-6
收藏
得分:0 
getch()只是让你在最后看到程序做了什么。。
如果你是用VC++的话,按Ctrl+F5也是一样的

两耳不闻窗外事,专心只读圣贤书
2006-05-25 15:53
qingfen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-12-23
收藏
得分:0 

不行来的,不是这个问题。我这个程序好像是被系统强制关闭的。我想找出了就是这个原因。。

2006-05-25 16:47
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

//对楼主程序做了些等价变换
//在VC++ 6.0下运行很正常
#include <stdio.h>
#include <conio.h>

void _pf()
{
puts("OK");
}

int main(void)
{
struct
{
void (*pFun)();
} pfun={ _pf };

pfun.pFun();

getch();//////LZ添加这一行试试
}
//前面几位都说得很对。不知LZ困惑在哪?
//顺便指出:LZ原始代码也运行得很正常。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-25 17:57
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

楼上的都说好了,
不过这种用法倒挺有意思,
用函数指针来作结构体成员,
还是用C++简单,定义成成员函数就OK了,
呵呵


对不礼貌的女生收钱......
2006-05-25 18:22
等待
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2005-12-1
收藏
得分:0 
楼主的程序为什么在我的机子上就可以运行啊

2006-05-25 19:26
qingfen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-12-23
收藏
得分:0 

我这个问题不是C++的程序!!!!
好吧,我改一个这个程序:
#include<conio.h>
#include<stdio.h>
struct code
{
void *(test)();
}sc;
void test()
{
puts("this my code!!");
}
main()
{
sc.test();
getch();
}
我先声明了我是用c程序编译而不是和C++来编译的,请大家帮一下了。
是不是指针不能确定而被系统认非法的才被强行关闭的。

2006-05-26 00:22
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
void *(test)();

这什么意思,返回指针啊

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-26 00:27
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
乃一函数指针,即函数一入口

楼主的问题其实不是程序问题!我猜想你用的是win-TC这个编译器,或者TC
当程序执行输出"OK"之后 ,程序在等待你敲任何一键结束程序
你未单击而直接选择按窗口由上角那个"X"关闭,自然会出现系统认为非法
需要强制关闭的事情

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-26 00:39
快速回复:[求助]这个程序为什么不能运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037905 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved