如果我想从函数返回一个指针,有什么更好更安全的呢?
void pro_register_application(WNDCLASS* wc); /* use wc in function */
或
WNDCLASS* pro_register_application(void)
{
WNDCLASS* wc = malloc( sizeof(WNDCLASS) );
...
return wc;
}
最佳答案
只要您适当地记录正在处理的缓冲区的所有权细节,两者都是相同的,选择哪一个取决于选择的问题。
第二个示例的用户需要清楚地知道,缓冲区的所有权已转移给他们,因此释放缓冲区的责任也随之转移。