c++ - 将未知大小的数组传递给函数

标签 c++ arrays

假设我有一个名为 MyFunction(int myArray[][]) 的函数,它执行一些数组操作。

如果我这样写参数列表,编译器会提示它需要在编译时知道数组的大小。有没有办法重写参数列表,以便我可以将任意大小的数组传递给函数?

我的数组大小由类中的两个 static const int 定义,但编译器不会接受类似 MyFunction(int myArray[Board::ROWS][Board: :COLS]).

如果我可以将数组转换为 vector ,然后将 vector 传递给 MyFunction 会怎么样?是否有我可以使用的单行转换,或者我是否必须手动进行转换?

最佳答案

在 C++ 语言中,多维数组声明必须始终包括除第一个以外的所有大小。因此,您尝试做的事情是不可能的。如果不显式指定大小,则不能声明内置多维数组类型的参数。

如果您需要将运行时大小的多维数组传递给函数,您可以忘记使用内置的多维数组类型。一种可能的解决方法是使用“模拟”多维数组(指向其他一维数组的指针的一维数组;或通过索引重新计算模拟多维数组的普通一维数组)。

关于c++ - 将未知大小的数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991057/

相关文章:

javascript - 遍历对象数组生成d3桑基图数据

c++ - Rcpp map /字典/列表

c - 我需要将一个字符串分成三个不同大小的部分

c++ - 纯虚函数声明中的 `= 0`是什么意思?

python - 通过 python 扩展/包装器传递 float 组指针 – SndObj-library

java - 如何使用两个整数数组执行 "cross-over"

c - 指向另一个数组的数组

javascript - Angular.js 复制文本框数组行中的值

c++ - 多窗口 CMD

C++ const char* 到 std::string &