以下を持って、
struct node{
int value;
struct node *next;
};
typedef struct node Node;
typedef struct node *pNode;
Node newNode(){
Node n;
n.value = 5;
return n;
}
pNode newpNode(){
pNode pn = (pNode) malloc(sizeof(Node));
pn->value = 6;
return pn;
}
メモリの割り当て解除が呼び出し元関数によって行われる場合は newpNode() を使用し、それ以外の場合は newNode() を使用する必要があることをどこかで読みましたが、それでは十分に理解できません。
newNode() と newpNode() をいつ使用する必要があるかについて、具体的な例をいくつか教えてください。
編集: newpNode() 内で pn を忘れた