在c源代码中,A和B会有所不同吗?

typedef struct asdf {
  int aa;
  int bb;
} asdf;

// A
void func1(int a) {
  if(a) return;
  asdf *bb;
  //****
}

// B
void func1(int a) {
  asdf *bb;
  if(a) return; // if return here, will bb become a memory leak?
  // ***
}


在B中,如果a为真返回bb会成为内存泄漏吗?

最佳答案

不,因为没有动态分配,它不会成为内存泄漏。您需要调用malloccalloc而没有相应的free来泄漏内存。

在您的代码中,您只是声明一个指向结构的指针。

关于c - c中的struct语句,这2个会有所不同吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45607967/

10-11 22:45
查看更多