关于NEW和DELETE的问题
#include <iostream>
using namespace std;
char * f(char *ps,int size){
char *pc=new char[size];
for (int i=0;i<size;i++)
*(pc+i)=*(ps+i);
*(pc+i)='\0';
return pc;
}
void main(){
char array[10]={'a','b','c','d','e','f','g','h','i','j'};
char *p=f(array,10);
cout<<"p point to the string :"<<endl;
for (int i=0;i<10;i++)
cout<<*(p+i)<<", ";
cout<<endl;
cout<<"p is "<<long(p)<<endl;
cout<<"&p is "<<long(&p)<<endl;
delete []p;
}
这个程序到最后一句的时候有问题,在函数f中new了一段 ,在什么地方delete合适呢?
如果在f的最后加delete我感觉好象有问题,那样的话返回的指针所指的存储区域应该就可以被别的东西填充了吧,不知道我理解的是否正确.请大家帮我看一下在什么地方用delete?