关于new和delete的一个基础问题
大家好,代码如下,BTNode是自定义二叉树。问题就是,我要返回一个BTNode*的返回值,而s又是new出来的,如果在return之前delete的话,就会出错。如果不加delete又不严谨,谢谢大家,在线等~~~~
BTNode *CreateBT(char *pre,char *in,int n){ BTNode *s; char *p; int k; if(n<=0) return NULL; s=new BTNode; //s=(BTNode *)malloc(sizeof(BTNode)); s->data=*pre; for(p=in;p<in+n;p++) { if(*p==*pre) break; } k=p-in; s->lchild=CreateBT(pre+1,in,k); s->rchild=CreateBT(pre+k+1,p+1,n-k-1); return s; }