【发布时间】:2013-03-12 13:29:30
【问题描述】:
我有一个程序,其中对象数组的大小是在运行时确定的,因此它是动态分配的(二维数组,从文件中读取)。我还有一个将这些对象作为参数的函数。问题是如果函数参数是传递给函数的二维数组,则应确定第二维。但是,就我而言,事实并非如此。我的程序无法编译,因为原型没有提到第二维。
这是我尝试过的:
//global variables
int residentCount=0;
int hospitalCount=0;
Resident** residents;
Hospital** hospitals;
bool readFromFiles(const string, const string, const int); //sizes are determined in here
void print(Hospital*[hospitalCount], Resident*[residentCount]); //declaration issue
我该如何解决这个问题?
【问题讨论】:
-
当你需要动态数组时停止使用指针,而开始使用
std::vector。 -
我为什么要这样做?
-
因为那样你就不必担心这些事情了。使用the standard library将让您作为 C++ 程序员的生活更轻松。
-
我现在看到了困难:) 下一次,我一定会使用它。感谢您的建议。
-
@JoachimPileborg 请发布解决方案,以便我们对其进行投票。
标签: c++ arrays pointers parameter-passing multidimensional-array