在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