帮忙纠正我用main函数调用用编的程序,我的程序main main函数调用用出错了

这个程序中StartClone函数怎么调用main函数的_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:456,521贴子:
这个程序中StartClone函数怎么调用main函数的收藏
#include &windows.h&#include &stdio.h&#include &iostream.h&// 创建传递过来的进程的克隆过程并赋于其ID值void StartClone(int nCloneID){
// 提取用于当前可执行文件的文件名
TCHAR szFilename[MAX_PATH] ;
GetModuleFileName(NULL, szFilename, MAX_PATH) ;
// 格式化用于子进程的命令行并通知其EXE文件名和克隆ID
TCHAR szCmdLine[MAX_PATH];
sprintf(szCmdLine,&\&%s\& %d&,szFilename,nCloneID);
// 用于子进程的STARTUPINFO结构
STARTUPINFO
ZeroMemory(reinterpret_cast &void*& (&si) , sizeof(si) ) ;
si.cb = sizeof(si) ;
// 必须是本结构的大小
// 返回的用于子进程的进程信息
PROCESS_INFORMATION
// 利用同样的可执行文件和命令行创建进程,并赋于其子进程的性质
BOOL bCreateOK=CreateProcess(
szFilename,
// 新创建进程所使用的应用程序可执行文件的完整路径
szCmdLine,
// 新创建进程的命令行参数
// 缺省的进程安全性
// 缺省的线程安全性
// 不继承句柄
CREATE_NEW_CONSOLE,
// 创建标志参数:使用新的控制台
// 新的环境
// 当前目录
// 启动信息
// 返回的进程信息
// 对子进程释放引用
if (bCreateOK)
CloseHandle(pi.hProcess) ;
CloseHandle(pi.hThread) ;
}}int main(int argc, char* argv[] ){
// 确定进程在列表中的位置
int nClone = 0 ;
if (argc & 1)
sscanf(argv[1] , &%d& , &nClone) ;// 从第二个参数中提取克隆ID
// 显示进程的pid值和Clone编号
cout && &Process ID:& && GetCurrentProcessId()
&& &, Clone ID:& && nClone&&
const int c_nCloneMax=10;
// 如果nClone的值小于c_nCloneMax,则创建子进程
if (nClone & c_nCloneMax)
StartClone(++nClone) ;// 发送新进程的命令行和克隆号
// 在终止之前暂停一下 (l/2秒)
Sleep(500) ;
getchar(); //加上这一句可让进程停住(等待输入),方便观察。
return 0;}这个程序里StartClone是怎么一下子创建11个进程的?我网上查了一下,说是StartClone这个函数调用main函数,然后在调用StartClone函数达到目的的,但是我看不出来StartClone这个函数是怎么调用MAIN函数的?
和张大佛爷、二月红一起去探秘矿洞墓穴!
被CreateProcess函数调用的
好明显的死循环CreateProcess又不是fork除非nClone是全局变量放在共享段里那就可以搞
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或用函数调用的方式编写程序test-2.c,要求:1,在main函数中输入一个整数m(1
#include&&stdio.h&#include&&string.h&#include&&stdlib.h&void&create(int&n){printf(&n&=&%d\n&,&n);int&opt&=&1;for(int&i=0;&i&n;&i++){for(int&j=0;&j&i+1;&j++){printf(&%d\t&,&opt);opt&+=&2;}printf(&\n&);}}int&main(void){int&m&=&0;while(1){printf(&\n\n请输入整数m(1&=m&=10)的值:\n===&注:输入0退出程序\n&,&m);scanf(&%d&,&m);&if(m==0){}if(m&1&||&m&10){printf(&m值输入不正确,请从新输入\n&);}create(m);}}
为您推荐:
其他类似问题
扫描下载二维码c语言程序改错题c语言程序改错题以下程序中,main函数通过调用fun()函-知识宝库
你可能对下面的信息感兴趣共有 257 人关注过本帖
标题:哥哥姐姐,这段函数调用程序为什么输出的结果是错误的?
等 级:论坛游民
帖 子:86
专家分:43
结帖率:81.82%
&&已结贴√
&&问题点数:10&&回复次数:5&&&
哥哥姐姐,这段函数调用程序为什么输出的结果是错误的?
求y=<font color=#+<font color=#/(<font color=#*<font color=#)+<font color=#/(<font color=#*<font color=#)+<font color=#/(m*m) 的值。用下面的程序为什么结果总是1.<font color=#000?
#include&stdio.h&
int fun(int n)
&&&&&&&&f=1/(n*n);
void main()
&&& float sum=0;
&&& printf(&please input 'm'=\n&);
&&& scanf(&%d&,&m);
&&& for(i=1;i&=m;i++)
&&&&&&&&sum+=fun(i);
&&& printf(&'m' is %d , the final value is %f \n&,m,sum);
搜索更多相关主题的帖子:
等 级:版主
威 望:28
帖 子:657
专家分:3046
&&得分:10&
两个编译告警改了就好了。
程序代码:#include&stdio.h&
float fun(int n)
&&& f = (float)<font color=# / (n*n);
&&& return
void main()
&&& float sum = <font color=#;
&&& printf(&please input 'm'=\n&);
&&& scanf(&%d&, &m);
&&& for (i = <font color=#; i &= i++)
&&&&&&&&sum += fun(i);
&&& printf(&'m' is %d , the final value is %f \n&, m, sum);
等 级:论坛游民
帖 子:86
专家分:43
大家别只看不赐教嘛!请我总感觉形参和主参之间有问题,知道问题在哪的大神麻烦教一下。小弟才学的函数,不太懂啊!
等 级:版主
威 望:28
帖 子:657
专家分:3046
不是形参的问题,是数据类型转换的问题。
1. int型数据进行除法时,会只取商不取余,这个书本上应该会将。所以1/n*n结果就是0
2. fun函数返回值返回int型,那肯定不对。
等 级:论坛游民
帖 子:86
专家分:43
回复 2楼 grmmylbs
咦,还真可以了。“(float)1”是个什么东东啊?~~~好人一生平安
等 级:论坛游民
帖 子:86
专家分:43
回复 4楼 grmmylbs
奥,谢谢啦。这些数据类型转换我总是出错啊。。。
版权所有,并保留所有权利。
Powered by , Processed in 0.035774 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 main函数调用 的文章

 

随机推荐