我有一個函數說空隙theFunc(INT NUM &,INT *陣列),其通過參考和陣列指針取入一個一個int傳遞通過引用一個堆棧中分配參數的陣列
theFunc(int num&, int* array)
{ array[0] = num;
}
這是隻是一個例子,因此該函數簡單的東西
int main()
{ int k = 3;
int* theArray = new int[5];
theFunc(k, theArray);
delete[] theArray;
return(0);
}
我的問題是如何爲k,堆棧分配INT例如,通過參考theFunc傳遞並存儲在動態存儲陣列。我知道對象/參數不能在棧和堆之間移動,因爲它們具有特定的存儲內存地址。我想知道爲什麼這會起作用,以及發生了什麼(如果這種情況與通過值傳遞有所不同)。
謝謝!
堆棧變量也有內存地址。地址只是以與堆地址相同的方式傳遞給函數。 –
另一個關鍵點是'k'的_value_正被_copied_變成'array [0]' – qxz
'int num&'是一個語法錯誤。 'theFunc'必須有返回類型。請發佈真實的代碼 –