I noticed that it is a common idiom in C to accept an un-`malloc`ed pointer as a second argument instead of returning a pointer. Example:
/*function prototype*/
void create_node(node_t* new_node, void* _val, int _type);
/* implementation */
node_t* n;
create_node(n, &someint, INT)
Instead of
/* function prototype */
node_t* create_node(void* _val, int _type)
/* implementation */
node_t* n = create_node(&someint, INT)
What are the advantages and/or disadvantages of both approaches?
Thanks!
**EDIT** Thank you all for your answers. The motivations for choice 1 are very clear to me now (and I should point out that the pointer argument for choice 1 **should be** malloc'd contrary to what I originally thought).
以上就是pointer as second argument instead of returning pointer?的详细内容,更多请关注web前端其它相关文章!