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)
任何评论都会有所帮助.
C中的数组是不可修改的左值.改变int numbers[6]在main()给int *numbers,你会被罚款.
一定要确保free()它!
编辑说明:get_lotto_numbers在你的main函数中声明这个有点奇怪.
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |