我看过关于栈和堆的介绍,但是对此并不了解。
x变量存储在哪里(堆还是栈)?我的代码是否存在内存泄露问题?
struct st
{
int x;
int* y;
};
st* stp;
void func()
{
st* s=new st();
s->x=2;
s->y=new int(5);
stp=s;
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
func();
cout << stp->x << " " << *stp->y <<endl;
delete stp->y;
delete stp;
}
输出 2 5
new
或控制台输出(或在删除之前可能添加的任何其他代码)抛出异常,则会发生内存泄漏。 - Mike Seymour