在main函数(C)中使用数组

米哈尔·库切拉(MichalKučera)

有什么方法可以在另一个函数中使用在main()中定义的静态数组,而不将其作为参数提供给函数?

例如:

main()已定义数组:

int Array[10];

用整数填充。我想为qsort创建一个比较函数,该函数必须具有以下标头:

int compar (const void* a, const void* b);

我想这样决定:

if Array[a]<Array[b] return 1

等等...

该数组不能直接提供给qsort,但是对于精确排序是必需的。

同样,此数组必须是静态的(不能重新分配)。

有人有什么想法吗?

放松

当然,唯一的方法是使数组的地址作为全局变量可用。

即使数组本身位于内部main()这也是可能的,但是您必须将全局变量初始化为适当范围的地址,并注意生命周期。

int *mains_array;

static int qsort_callback(const void *a, const void *b)
{
  /* use mains_array */
}

int main(void)
{
  int secret_array[100];

  mains_array = secret_array;
  qsort(something, something, qsort_callback);
}

这是一个非常丑陋的解决方案,应该多加考虑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何更改main中使用的数组

如何在类中使用main从函数中打印变量,帮助理解OOP C ++

C#-在Main函数中使用Async

在VBA中使用数组返回函数

在函数中创建动态数组(calloc),并在main中使用它

在函数中使用指针并修改main()

如何在C中使用包含多种对象或函数的数组

在C ++中使用依赖函数的大小初始化数组

如何在C中使用空的main()方法运行函数?

使用main中的新作品创建动态数组的C ++代码,但不能作为单独的函数工作

如何在C ++中使用main中struct的数组数据成员?

如何在C#main program.cs中使用构造函数来注入接口

在函数或数组中使用变量

获取在函数中使用的数组“值”的键

c ++在函数中使用函数

在C ++中,为了在函数中使用数组,在其中使用ifstream将数据从.txt文件输入到数组中

如何在VBA函数中使用数组?

在计算中使用Excel数组函数的结果

从C#页面加载传递数组的数组以在Javascript函数中使用

如何在C中使用函数读取数字并在main中使用它?

在主函数中使用类中的数组

如何将函数中使用的数组传递给动态分配的main数组?

C中使用数组作为参数的函数

在函数中使用结构数组?

在 C 中使用带有数组的函数作为输入

在 int main 中使用参数调用 C++ 函数

在 React 函数组件中使用 useSelector

C ++在构造函数中使用数组启动对象

初始化要在 main 中使用的函数内的字符指针数组