[問題] 迴圈內的變數宣告(定義)
變數要用到時才宣告或定義是我比較喜歡的風格。
程式碼如下:
for(int t=0; t <= total_timestep; t+=interval)
{
int temp_window = window;
int index = t;
vector<double> avg_intensity(size_qx*size_qy*size_qz, 0.0);
vector<double> avg_intensity2D(size_qx*size_qz, 0.0);
do
{
vector<Vector> r;
vector<double> intensity(size_qx*size_qy*size_qz, 0.0);
vector<double> i_yz, i_xz, i_xy;
GetScatSource(data_dir, index, r);
ScatIntensity(size_qx, size_qy, size_qz, q, r, intensity);
}while(temp_window > 0)
}
而我對迴圈內的變數的概念是
當迴圈結束時,這些區域變數(不包含指標變數)所佔用的記憶體就會被釋放。
根據以上的觀念,以下的程式是不是會佔用太多記憶體空間啊,因為直到迴圈結束
前
vector<double> avg_intensity; vector<double> avg_intensity2D;......
都一直在要新的空間?還是每跑一次迴圈這些容器佔用記憶體就會被釋放
然後再給新的空間?
感謝回覆!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.103.227
推
06/04 17:09, , 1F
06/04 17:09, 1F
→
06/04 17:10, , 2F
06/04 17:10, 2F
→
06/04 17:11, , 3F
06/04 17:11, 3F
→
06/04 17:11, , 4F
06/04 17:11, 4F
→
06/04 17:20, , 5F
06/04 17:20, 5F
→
06/04 20:33, , 6F
06/04 20:33, 6F
→
06/04 20:34, , 7F
06/04 20:34, 7F
→
06/04 23:11, , 8F
06/04 23:11, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章