我在C++中遇到了一个关于一维数组的小问题。我有一个函数如下:
我在代码中的某个地方调用函数,在进行数学运算之前,我无法知道数组的维度。该数组作为引用传递到函数中!因为我需要它在main()函数中。我如何分配这样的数组?这样,带有??维度的数组作为引用传递到函数中,然后我必须放置维度并向其写入一些值。
void func(int (&array)[???])
{
// some math here;
"for" loop {
array[i] = something;
}
}
我在代码中的某个地方调用函数,在进行数学运算之前,我无法知道数组的维度。该数组作为引用传递到函数中!因为我需要它在main()函数中。我如何分配这样的数组?这样,带有??维度的数组作为引用传递到函数中,然后我必须放置维度并向其写入一些值。
func
一个数组而不是像使用数组一样使用裸指针。 - Cedric H.int &*arr
而不是不寻常但有效的int *&arr
。我从未考虑过int&*arr
- 有趣的是它不仅仅是一个坏主意,而且是无效的:-)。毕竟,您可以通过(同样不明智的)struct intRef { int & ref; intRef(int& ref):ref(ref){}}; void func(intRef * array) {}
来做一些相当等价的事情 - 因此,指向引用的指针并没有根本性的问题,只是...不必要的。 - Eamon Nerbonne