我還是新的C++指針,並會感到巨大的,如果有人可以幫助我走出這種局面在這裏:去分配對象的二維數組
while(true)
{
//some input
//if input is QUIT it quits the program
// some code to calculate how many House objects we need
House** houses = new House *[numOfHouses];
//some more code
}
是否有人可以指導我如何去分配房子(二維陣列)在這種情況下?
如果我的循環運行一次,並且用戶在第二次迭代中輸入QUIT,valgrind檢查會丟失8個字節。
如果我的循環運行兩次,並且用戶在第三次曝氣中輸入QUIT,我會在valgrind檢查中丟失16個字節。
感謝
由於您覆蓋舊指針值:'House ** houses = new House * [numOfHouses];',因此您在該循環的每次迭代中都無法訪問分配的內存。 –
是的..我可以弄清楚那麼多..所以你會建議什麼? –
我建議使用'std :: vector houses(numOfHouses);'或者如果您確定需要指向'House'的指針,請使用'std :: vector >'(' '分別爲std :: shared_ptr ')。 –