十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
并不是说类型不匹配,是因为在使用merge之前未定义,把merge放到mergeSor前面,或是在最开始写上这句:
创新互联建站是专业的安州网站建设公司,安州接单;提供成都网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行安州网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
void merge(int*,int,int,int);
你问题中函数_beginthread是windows下创建线程并立即执行的函数:
一、直接运行至程序结束或调用_endthread函数结束进程。
二、三个参数分别是执行的函数、新线程堆栈大小(一般传0)、传递给新线程的参数列表(不需要就传NULL)。
三、该函数需要头文件process.h。
四、调用函数mousemove写在main下面,要先申明。
五、main是主线程,在创建进程之后应使用循环、输入或其他函数确保主线程运行。否则像你上面这样写,创建子线程后,主线程就运行结束了。
六、子线程函数死循环定位鼠标,至少给个结束方式吧。
下面是按你代码写的演示,按任意键结束程序:
#includestdio.h
#includewindows.h
#includeprocess.h
#includeconio.h
void mousemove();
int main()
{
_beginthread(mousemove,0,NULL);
getch();
printf("主进程结束\n");
return 0;
}
void mousemove()
{
while(1) {
SetCursorPos(800,600);
printf("子线程执行中\n");
}
}
首先呢,你的这个主要有两个问题:你定义的int *a[],它是个指针变量数组,
所以你赋值的时候也要赋给指针变量呀,懂了吗?
#include"stdio.h"
main()
{
void gdata(int *a[],int n);
void cl(int *a[],int n);
void output(int *a[],int n);
int *a[]={};
gdata(a,10);
cl(a,10);
output(a,10);
while(1);//here you can change it
}
void gdata(int *a[],int n)
{
int i;
for(i=0;in;i++)scanf("%d",a[i]);
printf("\n\n");
}
void cl(int *a[],int n)
{
int *j;// 这里你必须要定义为指针 变量的
int i,k=0;
int *temp;//这儿也一样
j=a[0];
for(i=1;in;i++)
{
if(a[i]j)
{j=a[i];k=i;}
}
temp=a[k];a[k]=a[n-1];a[n-1]=temp;
}
void output(int *a[],int n)
{
int i;
for(i=0;in;i++)
{
printf("%d\n",a[i]);
}
}
//a是一个char [10]类型的指针,所以不能赋给与char*类型指针
//一般应该报错的。。因为没有隐式转化的机制。
//所以要解决的话,只能强制类型转换。
#include stdio.h
void exchange(char **a, char **b)
{
char *p;
p = *a;
*a = *b;
*b = p;
}
int main()
{
char a[10] = "abc";
char b[10] = "def";
exchange((char**)a,(char**) b);
printf("a[10] = %s b[10] = %s\n", a, b);
return 0;
}