静态变量为啥就可以在函数里面返回数组,动态反而报错
、、、、、、、、、、、、、、、、、、、动态(报错,,invalid conversion from int* to int。。。。。。。。。。。。#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//**************************************************************************
//生成54个随机数 ,按顺序,将这54个数字存储到3个数组里面,每个数组存放14个随机数
int number_of_game = 3;
int card = 14;
int *distribution(int array,int member);
int main()
{
int people,*person1,*person2,*person3;
for(int i =0;i<54;i++)
{
people = rand() % 54;
}
person1 = *distribution(people,1);
person2 = *distribution(people,2);
person3 = *distribution(people,3);
}
int * distribution(int *array,int member)
{
int * someone ;
someone = (int *) malloc(sizeof(int) * 14) ;
for(int i = 0 ; i < card ; i ++)
{
someone = array ;
}
return someone ;
}
、、、、、、、、、、、、、、、、、、、静态。。。。。。。。。。。。。。。。。。。。
//******************快速排序 ************************
//通过一趟排序将待排序的数据分割成独立的两个部分,其中一个部分的所有元素都比另一个部分的所有元素小,
//然后分别对这两个部分继续进行排序,重复上述步骤,直到排序完成
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int card = 14;
int *distribution(int *array,int member);
int main()
{
int people,*person1,*person2,*person3;
for(int i =0;i<54;i++)
{
people = rand() % 54;
}
person1 = distribution(people,1);
person2 = distribution(people,2);
person3 = distribution(people,3);
for(int i =0;i<14;i++)
{
printf("%d ",person1);
}
}
int *distribution(int *array,int member)
{
static int someone;
for(int i =0; i<card; i++)
{
someone = array;
}
return someone;
} 你的第一段代码有错误
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//**************************************************************************
//生成54个随机数 ,按顺序,将这54个数字存储到3个数组里面,每个数组存放14个随机数
int number_of_game = 3;
int card = 14;
int *distribution(int array,int member);//这里的参数和下面函数实现的参数不一致,要改成 int *array
int main()
{
int people,*person1,*person2,*person3;
for(int i =0;i<54;i++)
{
people = rand() % 54;
}
person1 = *distribution(people,1);//这三个调用函数要把前面的*去掉。函数返回值本来就是int*,再加个*就和person类型不一致了
person2 = *distribution(people,2);
person3 = *distribution(people,3);
}
int * distribution(int *array,int member)
{
int * someone ;
someone = (int *) malloc(sizeof(int) * 14) ;
for(int i = 0 ; i < card ; i ++)
{
someone = array ;
}
return someone ;
}
页:
[1]