关于new的使用.解决思路

关于new的使用.......
如果在程序里写:
int   x   =   10;
那么这个x变量在堆栈里,当main函数结束后就自动被收回了

如果换做是用new分配的:
int   *p   =   new   int(10);
那么这个int在堆里,必须加一句:
delete   p;
这样来回收内存。

这样理解对不对?是不是只要用了new,就必须有delete?
谢谢!

------解决方案--------------------
yes
------解决方案--------------------
是的
------解决方案--------------------
如果是new的数组,要用delete []p