0
我正在处理C++中数组的传递。下面的作品,我提供的定义与数字数组,如:传递定义二维数组元素大小的变量
gen0[6][7].
但是,我不能说,我送一个变量作为我的尺寸参数的方法。我意识到我可能需要将它们作为指针或引用来传递。我在别处看到使用unsigned int
,没有工作。我尝试了一些变化,但我正在为整个概念而努力。任何提示/建议将不胜感激!
//in main
int col1, col2;
col1 = rand() % 40 + 1;
col2 = rand() % 50 +1;
int gen0[col1][col2];
print(gen0)
//not in main
template<int R, int C>
void print(int (&array)[R][C])
你得到一个错误?究竟是什么问题? – 0x499602D2 2014-09-26 03:38:28
查看如何使用'new []'和'delete []'在堆上分配(和取消分配!)数组的数组 - 这会让您使用在运行时而不是编译时确定的大小。 – Cameron 2014-09-26 03:57:39
您正在定义的VLA(可变长度数组)不是C++标准的一部分。不要指望它像现在这样工作。它们作为实现扩展提供。模板提供在*编译时*完成。您的数组维度在* run-time *处定义。我的建议是使用'std :: vector'并旋转基于迭代器的打印解决方案。 –
WhozCraig
2014-09-26 04:00:06