定義一個結構體typedef struct{int * a【10】,int top}Sequence;
完了之后在主函式中int main{Sequence st}到時候可以free(st)?就是沒有動態分配可以用free函式嗎,還是說一個變數里面存放了指標就可以用free釋放這個變數
uj5u.com熱心網友回復:
沒有動態分配就不用freeuj5u.com熱心網友回復:
malloc <-> free 一定是成對使用的。Sequence st沒有使用malloc,是放在堆疊上的,不需要自行去free
至于說結構體中包含了指標。那得看這個指標是怎么用的。
如果沒有malloc空間,不需要free。
uj5u.com熱心網友回復:
那讓結構體里面的指標指向一個指標變數這樣可以釋放嗎,就是int *p int**a=p可以free(st)嗎
uj5u.com熱心網友回復:
free 只針對堆地址,并不是所有的指標都需要freeuj5u.com熱心網友回復:
你對成對使用這個詞是怎么理解的
uj5u.com熱心網友回復:
陣列和陣列元素是兩碼事陣列不用free,陣列元素如果是指標型別,并且申請了記憶體,就要釋放陣列元素,也就是釋放free(st.a[i])是可以的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/162083.html
標籤:C語言
下一篇:函式呼叫
