A. C++中,程序的所占用的内存资源分为5个部分,堆(heap)、(堆)栈(stack)、自由内存区、全局变量或静态变量区、常量区。其中,除了堆和自有内存区是用户动态申请的,其它的都是编译时就已经确定不能再改变的。C++中,QButton myButton;这样的对象所占的内存区在stack中,程序会自动回收,QButton*myButton = new QButton();这样的对象所占的内存区在heap中,但指针myButton是局部变量在stack中。其它所有基本类型都在stack中。由于c++没有垃圾回收机制,像malloc申请的内存在自有内存区,跟new一样是动态申请的,需要用户主动delete,而stack中的内存资源程序会自动回收。
B. 内存泄漏,一般是指用户delete一个已经被delete的对象。