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 };
此時輸出爲:真.