[問題] 請問如何重複使用記憶體空間?
該是很基本的問題,就是function中的array空間想重負使用,要怎處理呢?
有 array *y,長度 n
入 function linearInterp做線性內插為長度nx的yInterp
,這步驟做很多次:
#define real double
real *yInterp;
for(int i =0;i< M;i++)
{
:
//(一些計算 得到y)
:
yInterp = linearInterp(n,nx,y);
:
//把yInterp存起來
free(yInterp);
}//for
real *linearInterp(int n, int nx, real *y)
{
real *yInterp = new real[nx];
:
//把y做線性內插,並存成yInterp
:
return yInterp;
}//linearInterp
這樣做是沒有問題,但yInterp這array一直在那開開關關,會讓速度慢下不少
我嘗試將real *yInterp = new real[nx]; 這行前面加上static 字樣
並將 free(yInterp)移到迴圈外面,卻會造成crash。
請問要怎寫才可讓記憶體空間重複使用而不開開關關呢?
(請不要說把 real *yInterp = new real(n);這行移到function外面。。)
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.82.2
推
03/10 19:14, , 1F
03/10 19:14, 1F
→
03/10 19:15, , 2F
03/10 19:15, 2F
→
03/10 19:16, , 3F
03/10 19:16, 3F
→
03/10 19:17, , 4F
03/10 19:17, 4F
→
03/10 19:17, , 5F
03/10 19:17, 5F
→
03/10 19:19, , 6F
03/10 19:19, 6F
→
03/10 19:19, , 7F
03/10 19:19, 7F
→
03/10 19:19, , 8F
03/10 19:19, 8F
→
03/10 19:20, , 9F
03/10 19:20, 9F
→
03/10 19:21, , 10F
03/10 19:21, 10F
→
03/10 19:22, , 11F
03/10 19:22, 11F
→
03/10 19:22, , 12F
03/10 19:22, 12F
→
03/10 19:23, , 13F
03/10 19:23, 13F
→
03/10 19:23, , 14F
03/10 19:23, 14F
→
03/10 19:25, , 15F
03/10 19:25, 15F
→
03/10 19:25, , 16F
03/10 19:25, 16F
推
03/10 19:46, , 17F
03/10 19:46, 17F
→
03/11 02:08, , 18F
03/11 02:08, 18F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章