# include <iostream>
using namespace std;
class A
{
public:
A(){i = new int(50);};
~A(){};
int * i ;
};
int main()
{
A * p = new A;
int * q = p->i;
cout << *q << endl;
delete p;
*q = 10;
cout << *q << endl;
cin.get();
cin.get();
return 0;
}
是不是即使是删除了p指向的对象后,在构造函数中用new创建的内存空间还属于当前程序,并能合法的使用这段内存?
如果在析构这样写:
~A(){delete i;};
是不是在删除p指向的对象后,这段内存就归还给操作系统了,使用它就成非法的了?
在构造函数中用new创建的内存会一直存在吗?
在构造函数中用new创建的内存只要不删除会一直存在。new 和malloc的区别:1、new 是c++中的操作符,malloc是c 中的一个函数;2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数;3、内存...
C++中new出来的对象,不delete的话,会怎么样?
回答追问: main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露的内存。main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露的内存。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化...
java里的new到底是什么意思???
java里的new的英文意思就是"新的"的意思。在JAVA里就是创建一个新的实例,或者说一个新的对象,一个普通类在没有实例化之前,就是new之前,它的属性,方法等等在内存中都是不存在的。只有使用new了以后,这个类的一些东西在内存中才会真的存在,也就是说只有new了之后,这个类才能用。举例说明:Java中使...
c++中的new一般是什么情况下使用?
用new来创建地址是动态创建的意思。例如:int *a=new int; 创建的时候是不在内存里面占用空间的。a=b; 给a赋值时才开辟空间给a delete 其实就是删除的意思。例如:delete a; 释放了a的内存,让a所占用的内存变得可用,a 不复存在 假如a已经被分配了内存空间,如果给 a赋值后 即a...
java中new的用法? new 出的对象或变量,的生存周期是...?在类中和方法...
而且自己不找个干妈干爸,那他就是真活到头了。一些匿名对象是new完就立刻死了,因为匿名对象出生的目的就是之用一次就丢掉的,所以这个匿名是java所有对象里最悲剧的一个角色,用之即弃。而最尊贵的对象就是常量对象,这个是一生只伺候一个主人,也是用情专一的对象啊,一辈子就这一个。
如果不停的new一个变量会怎么样呢
会产生内存泄漏,也就是说分配的内存区域失去了指向他的指针,系统无法操作这片内存区域。如果你new了一大片内存区域,最后有可能产生系统内存不足。把计算机重新启动就可以了。
java的类在刚定义好还没有new的时候它在内存中存放在什么地方
现在有这么些情况,你要new一个新的对象.这个时候JVM会把你那个类的class加载到内存当中.加载完了.JVM会看你的代码有没有错.没有错的话.JAVA的解释器就会去一行行的读你的代码.当然,这个时候读的代码是声明属性和构造函数等代码.这个时候他通过你的声明属性代码和构造函数就可以知道给你分配多少内存...
c++中new指令在什么情况下会自动清除,什么情况下不会?
new之后必须要用delete删除 但是如果是引用,那么就要用release释放 除非你学的是java,这个不用人为的释放内存,虚拟器帮你释放内存
...分配的话就不需要显示定义析构函数,复制构造函数,赋值操作符,为什么...
当类的构造函数中动态申请了内存的话,如果new 出该类的一个对象,当你delete对象的时候,只能释放掉该类中的其他成员变量,而动态申请的内存空间就无法释放了,这样就会导致内存泄露。所以在构造函数中动态申请了内存的话,那么就一定要在析构函数中用delete运算符来释放申请的内存。另外,我们知道,如果...
请问java中,如果多次调用一个类的构造函数,会造成内存泄漏等问题么?
会的。。new出来的对象占用堆内存。。满了就会溢出 比如 class T{ T t = new T();public T();} 你在main方法里这么写 T tt = new T();就会造成你说的内存溢出,因为形成了递归调用,内存不够用了