猪猪虾 发表于 2020-11-24 20:13:18

静态变量为啥就可以在函数里面返回数组,动态反而报错

、、、、、、、、、、、、、、、、、、、动态(报错,,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;
}

chxchxkkk 发表于 2020-11-25 09:35:47

你的第一段代码有错误


#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]
查看完整版本: 静态变量为啥就可以在函数里面返回数组,动态反而报错