在C中将数组从函数返回到main?

use*_*485 0 c arrays pointers return function

将数组返回main的方法是什么?我知道数组已经创建但是无法返回它,所以当我尝试使用它时会说"分配中的不兼容类型"?

int* get_array(){

      int i = 0, j;
      int *array = malloc(6);
      srand(time(NULL));

      while (i != 6) 
      {
            int random_number = ((rand() % 49) + 1);
            int ok = 1; 

            for (j = 0 ; ok && j != i ; j++)
            {
                ok &= (random_number != array[j]);
            }

            if (ok) 
            {
                array[i++] = random_number;
            }
      }
      return array;
} 
Run Code Online (Sandbox Code Playgroud)

然后从主要调用它: -

int main()
{

      int i;
      int* get_lotto_numbers();
      int numbers[6];

      numbers = get_lotto_numbers();

      for(i = 0; i < 6; i++)
      {
               printf("%d ", numbers[i]);
      }
}
Run Code Online (Sandbox Code Playgroud)

任何评论都会有所帮助.

Car*_*rum 5

C中的数组是不可修改的左值.改变int numbers[6]main()int *numbers,你会被罚款.

一定要确保free()它!

编辑说明:get_lotto_numbers在你的main函数中声明这个有点奇怪.