int p[n][m] = { { 7, 5, 3 } ,{ 3, 2, 2 } ,{ 9, 0, 2 },{ 2, 2, 2 }, { 4, 3, 3 } }; //变量名p其实是一个指向二维数组的指针,作为实参调用时记得加取值符号&
P[i].SetMax(&p[i][m]);
为什么void Banker()的形参是Process类的对象,而不是简单地用一个数组表示request?
因为仅仅只用数组的话,不知道是哪一个进程对象的需求,也不能修改该进程对应的变量
两个数组为形参的比较函数,实际上比较的是内存地址的大小
先看测试用例:
using namespace std;
#include<iostream>
int a[3] = { 1,1,1 };
int b[3] = {2,2,2};
void Compare(int req[3], int had[3])
{
for (int i = 0; i < 3; i++)
{
if (req[i] > had[i]) //只要有一个请求量大于所拥有的,则判定为false
{
cout << "假"; break;
}
else
{
cout << "真"; break;
}
}
}
int main()
{
Compare(&a[3], &b[3]);
system("pause");
return 0;
}
此时输出为:假
调用时,两个实参分别是&a[3] 和 &b[3],实际上是之前初始化的两个数组的地址.
如果在声明时对调一下a[]和b[]的位置
int b[3] = {2,2,2};
int a[3] = { 1,1,1 };
此时输出为:真.