若有类A,定义A *r=new A[5]; ,则释放指针r所指向的整块内存空间的操作是 ()
A.delete r ;
B.delete *r;
C.delete []r;
D.delete r[];
- · 有5位网友选择 C,占比50%
- · 有3位网友选择 D,占比30%
- · 有1位网友选择 A,占比10%
- · 有1位网友选择 B,占比10%
A.delete r ;
B.delete *r;
C.delete []r;
D.delete r[];
A、delete p;
B、delete *p;
C、delete &p;
D、delete []p;
A、无论是在栈上还是在堆上分配的内存都需要程序员用free来释放。
B、用return语句既可以从函数返回调用动态内存分配函数动态申请的内存的地址,也可以从函数返回在函数内定义的局部变量的地址。
C、在动态分配一块内存后,接下来又丢失了对这块内存的追踪路径,这种错误属于悬空指针即野指针。
D、对于用动态内存分配函数申请的内存,如果在使用结束后不释放的话,会发生内存泄漏。
E、对于用动态内存分配函数申请的内存,如果在释放以后还继续使用的话,那么会产生非法内存访问的错误。
F、用free释放指针指向的内存以后,仍然继续访问指针所指向的内存,将导致产生悬空指针,也称为野指针。
G、计算动态分配内存的字节数的时候,应该始终使用sizeof运算符,因为某些类型在不同的系统下所占内存空间的字节数是不同的。
H、为了避免内存分配不成功就使用它,应该在使用内存前检查指针是否为空指针。
A、new运算符的结果只能赋值给指针变量
B、动态创建的对象数组必须调用delete []动态撤销
C、用new分配的空间位置是在内存的栈区
D、动态创建的对象数组没有数组名
(2)写一函数free,将前面用new函数占用的空间释放。free(p)表示将p(地址)指向的单元以后的内存段释放。
A、在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。new出来的对象,不需要手动释放。
B、Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
C、java语言编译出来的class文件很容易被反编译和破解,因此java语言其实并不是那么安全的。
D、当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!