在C中,我試圖通過發送指向獨立函數的指針來爲結構分配內存。我知道需要malloc()來分配內存,但我對這個過程有點困惑。發送函數指針
如果我有一個函數:
void allocate(structure *ptr){
ptr = malloc(sizeof(ptr)); //ptr assigned memory block address
}
我分配的內存塊等於結構的大小,而只是發送給函數的原指針的副本。當函數將控制權返回給調用函數時,ptr會丟失,現在我們有內存泄漏。
基本上我想要做的是將一個結構類型的指針發送給一個函數併爲結構分配內存。
我知道這可能喜歡的東西來完成:
structure *allocate(structure *ptr)
其中呼叫是值得的影響:
some_struct_ptr = allocate(some_struct_ptr);
但如何可以做其他的方式?
你能解釋爲什麼你不能簡單地返回一個指向分配的內存? – Ancurio