提问人:Fixx 提问时间:12/25/2021 最后编辑:Fixx 更新时间:12/26/2021 访问量:547
警告:从 int* 赋值到 int 会使指针从整数开始,而不进行强制转换
Warning : assignment to int from int* makes pointer from integer without a cast
问:
我正在编写一个 C 代码,该代码将给定的参数从最小到最大进行排序,但我不断收到此错误:
警告:从“int *”赋值到“int”使指针成为整数,而不进行强制转换 [-Wint-conversion] 80 |数组[x] = av[i];
我试图将“int array[x];”更改为“int *array[x];”,但由于这一行-> gnome_sort(array, size);
有人可以帮我解决这个问题吗?感谢
void gnome_sort(int *array, int size)
{
int tmp;
for (int i = 1; i < size;) {
if (array[i-1] <= array[i])
++i;
else {
tmp = array[i];
array[i] = array[i-1];
array[i-1] = tmp;
--i;
if (i == 0)
i = 1;
}
}
}
int main(int ac, char **av)
{
int i;
int x = 0;
int array[ac];
x = 0;
for (i = 1; av[i] != NULL; i++) {
array[x] = atoi(av[i]);
x++;
}
size_t size = sizeof(array)/sizeof(array[0]);
for (i = 0; i < size; i++)
gnome_sort(array, size);
for (i = 0; i < size; ++i)
printf("%d ", array[i]);
return 0;
}
答:
0赞
Ali bout
12/26/2021
#1
我有一个建议而不是解决方案,托盘将数组传递给函数,而不是使用 void 函数并在修改后返回它。
评论
main(int ac, int **av)
除其他外,是错误的。array[x] = av[i];
这句话是错误的。 是一个整数数组,而 是指向 的指针数组。array
av
char
array[x] = atoi(av[i]);