[問題] 關於指標的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
問題(Question):
最近上課遇到了點問題,是關於指標的
我們課堂上使用指標來模擬矩陣、向量
使用方式大概是這樣:
//向量
double *vec=new double [N];
//矩陣
double **mat;
mat=new double *[N];
for (int i=0;i<N;i++) mat[i]=new double [N];
而矩陣相加老師給的code長這樣
double **mat_add_mat(int i, double **a, double **b)
{
int k, k1;
double **temp;
temp = new double *[i];
for(k=0;k<i;k++) { temp[k] = new double [i]; }
for(k=0;k<i;k++)
{
for(k1=0;k1<i;k1++) { temp[k][k1] = a[k][k1] + b[k][k1]; }
}
return temp;
}
在函式中 new 一個雙重指標,並回傳之
使用方式大概如下
double **A
double **B
double **C
.....(分別給值)
C=mat_add_mat(N,A,B)
我對這行的理解是把C這個指標所指向的位址改變成 mat_add_mat 中temp的位址
這裡我有個小疑問,那就是C這個指標原先所指向的記憶體是會自己free掉,還是就這樣
晾在一旁了?
如果不會自動歸還,那做出for i in range(100) C++A 這種操作
mat_add_mat這個函式不就會一直 new 記憶體出來而不會歸還了嗎?
如果沒辦法自動歸還記憶體,那有什麼方法可以改善這個情況呢?
--
作者 hgfck (hgf@NCKU) 看板 Gossiping
標題 Re: [新聞] 成大學生會做民調 九成學生支持多元成家
時間 Sun Nov 24 14:02:34 2013
推
11/24 14:07,
11/24 14:07
→
11/24 14:07,
11/24 14:07
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.81.52.21
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1400813921.A.CEA.html
→
05/23 11:03, , 1F
05/23 11:03, 1F
→
05/23 11:03, , 2F
05/23 11:03, 2F
→
05/23 11:04, , 3F
05/23 11:04, 3F
→
05/23 11:05, , 4F
05/23 11:05, 4F
→
05/23 11:07, , 5F
05/23 11:07, 5F
→
05/23 11:07, , 6F
05/23 11:07, 6F
推
05/23 11:11, , 7F
05/23 11:11, 7F
→
05/23 18:37, , 8F
05/23 18:37, 8F
→
05/23 20:17, , 9F
05/23 20:17, 9F
討論串 (同標題文章)