积极答复者
关于map里new结构体释放的一个问题

问题
-
typedef struct __MAPFE
{
char x[10];
char y[10];
char z[10];
} fmap,*pfmap; 声明结构体typedef map<int,fmap*> *N ;
N n1;
map<int,N> m1;
int i = 0;
n1 = new map<int,fmap*>();
m1[i] = n1;
fmap *f;
f = new fmap;
strcpy_s(f->x,sizeof(f->x)-1,"1");
strcpy_s(f->y,sizeof(f->y)-1,"2");
strcpy_s(f->z,sizeof(f->z)-1,"3");
(*n1)[1] = f;
map<int,fmap*>::iterator it = m1.begin()->second->begin();
//free(it->second);
delete it->second;这段代码是我将一个高手的代码精简后的,问题是他用的是free来释放这个结构体的内存空间。我用这个调试的时候发现delete和free都一样能释放掉空间。但是我想知道这个地方到底该用哪一个。从我现在的能力出发肯定是考虑delete。因为他对应new.最好能告诉我这个delete和new 在这既然都能释放空间,那么他两的区别在哪里,如果我用free会造成什么样的影响,用delete又会怎样。谢谢各位的指导。