作者jacky1989 (幻想的夢境)
站內C_and_CPP
標題[問題] 記憶體管理策略問題 part 1
時間Fri Mar 7 14:55:02 2014
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC2010
問題(Question):
如果今天有跨函式的指標傳遞
那在副程式裡需不需要free?
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>
#define LEN 2
void sub_fun(int *a);
int main(){
int a[LEN],i;
sub_fun(a);
for(i=0;i<LEN;i++)
printf("a(%d) = %d\n",i,a[i]);
return 0;
}
void sub_fun(int *a){
*(a+0) = 1;
*(a+1) = 2;
//free(a) <- 這邊要free嗎?
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.146.114
推 LPH66:只有 malloc 來的需要 free, 然後最好誰 malloc 誰 free 03/07 14:59
→ LPH66:所以: 第一, 這是陣列不需要 free; 03/07 15:00
→ LPH66:第二, 函式收到指標就做事就好, 要不要 free 主程式決定 03/07 15:00
推 jackylu63:推1F,誰malloc的誰free。沒人教我,但我一直這麼做 03/08 22:53
→ jackylu63:這樣子的做法,是否有列入規範啊? 03/08 22:54
※ 編輯: jacky1989 來自: 118.233.66.46 (03/09 04:14)