[問題] 如何傳出區域中的 malloc 空間?
由於要實作一種資料結構,需要動態配置記憶體空間,
而這個動作想要放在一個函數裡處理,而且只有在此函數的運作才需要新的空間配置,
若先在外面宣告,感覺不是很好操作,此外該函數同時想回傳不只一個此類的結構變數
因此想要用指標作參數,
int function(DataSructure * A, DataStructure * B){
A = malloc( sizeof(DataStructure) );
B = malloc( sizeof(DataStructure) );
.....
}
int main(){
DataStructure * x = NULL , *y = NULL ;
function( x , y);
.....
// 使時 x , y 仍然指向 NULL,並沒有指向 function 配置出的記憶體空間
}
想請問,是有語法上的錯誤? 還是在函數中用 malloc 配置的空間屬於區域變數,
function 執行完後,空間就被收回? (我自己測試覺得比較像這個原因)
如果是後者,想請問有什麼好方法,或是比較常用的處理方式能處理這個問題呢?
~謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.18.7
→
07/09 19:21, , 1F
07/09 19:21, 1F
→
07/09 19:21, , 2F
07/09 19:21, 2F
推
07/09 19:46, , 3F
07/09 19:46, 3F
推
07/09 21:01, , 4F
07/09 21:01, 4F
→
07/09 21:33, , 5F
07/09 21:33, 5F
→
07/09 21:49, , 6F
07/09 21:49, 6F
→
07/09 21:54, , 7F
07/09 21:54, 7F
推
07/10 00:47, , 8F
07/10 00:47, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章