void hello()
{
BYTE *bTemp=new BYTE[200];
hello(bTemp);
}
void test(BYTE * bFeng)
{
LPBYTE lpTemp=bFeng;
}
最后bTemp的内存会自动释放吗?
不然改怎么释放内存呢?
//谢谢大虾
{
BYTE *bTemp=new BYTE[200];
hello(bTemp);
}
void test(BYTE * bFeng)
{
LPBYTE lpTemp=bFeng;
}
最后bTemp的内存会自动释放吗?
不然改怎么释放内存呢?
//谢谢大虾
delete bTemp[];
用[]分配,用[]释放。
void hello()
{
BYTE *bTemp=new BYTE[200];
hello(bTemp);
delete []bTemp;
}不负责分配bFeng,所以不负责释放。
void test(BYTE * bFeng)
{
LPBYTE lpTemp=bFeng;
// 没有负责分配lptemp,所以不负责释放它
}
也就是说调用完hello(bTemp)后,test(BYTE *bFeng)还没处理完.
所以只有在test(BYTE *bFeng)里释放内存了,可以这样做吗?
void test(BYTE *bFeng)
{
BYTE * pTemp=bFeng;
......
delete [] pTemp;
}
//谢谢
不要先让hello退出
在你调用delete时,会先读出这部分信息,然后释放内存.这样不会造成内存泄漏.
在一个线程里new,在另一个线程里delete是常用的技巧.