如果我想从函数返回一个指针,有什么更好更安全的呢?

void pro_register_application(WNDCLASS* wc); /* use wc in function */


WNDCLASS* pro_register_application(void)
{
   WNDCLASS* wc = malloc( sizeof(WNDCLASS) );
   ...
   return wc;
}

最佳答案

只要您适当地记录正在处理的缓冲区的所有权细节,两者都是相同的,选择哪一个取决于选择的问题。
第二个示例的用户需要清楚地知道,缓冲区的所有权已转移给他们,因此释放缓冲区的责任也随之转移。

08-19 18:30