【发布时间】:2014-12-17 00:55:18
【问题描述】:
对于这个作业,我的教授给了我们以下函数头:
void thisFunc(Node** root, const int * elements[], const int count)
大概,这是正确的,我无法更改。
Const int *elements 是一个使用 scanf 获取的 int 值数组;我用
声明了我的int entries[atoi(argv[1])-1];
并成功填充
for(int a=0; a < atoi(argv[1]); a++) {
scanf("%i", &entries[a]);
}
但我很难调用 thisFunc。
thisFunc(&bst, entries, atoi(argv[1]));
这会引发明显的错误:
note: expected 'const int **' but argument is of type 'int *'
如果我是对的,它需要一个指向整数指针的常量数组吗?我应该如何处理条目数组才能使其成为有效参数?
我尝试通过引用 (&entries) 传递条目,但我有点迷茫。
【问题讨论】:
-
const int * elements[]不是整数数组。它是一个指向整数的指针数组.. -
@haris 实际上,它根本不是一个数组。调整为指向int的指针。
-
@juanchopalnza 仅在用作函数参数时。但这真的是在争论 symantix。
-
@aruisdante 是一个函数参数。这是一个重要的区别。
-
@aruisdante 不是故意粗鲁,但我认为您的意思是“语义”,除非有一个我不参与的内部笑话。
标签: c pointers parameter-passing