第1题:
C++用操作符new和delete来进行动态内存管理(分配与释放堆内存)。()
第2题:
c++提供的动态内存分配和释放的操作符为【 】和【 】。
第3题:
a. free(p);
b. free p;
c. free(*p);
d. free[p];
第4题:
已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。
Afree(p);
Bfree p;
Cfree(*p);
Dfree[p];
第5题:
A.是
B.否
第6题:
C++中,对象保存在内存中,栈内存是自动分配和释放的,而堆内存需要用户自己申请和释放。()
第7题:
某操作系统的内存管理采用段式管理,内存分配采用最佳适配算法,计算机的内存为50M,刚开始时内存均未使用。经过一段时间的运行(其内存申请;释放的序列为:申请20M一申请15M一申请10M一释放15M一申请10M一释放20M一申请4M)以后,内存中存在(26)。
A.2个空闲块,长度分别为10M、16M
B.3个空闲块,长度分别为20M、1M、5M
C.1个空闲块,长度为26M
D.4个空闲块,长度分别为5M、5M、5M、11M
第8题:
关于动态存储分配,下列说法正确的是
A.new 和 delete是C++语言中专门用于动态内存分配和释放的函数
B.动态分配的内存空间也可以被初始化
C.当系统内存不够时,会自动回收不再使用的内存单元,因些程序中不必用delete释放内存空间
D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new
第9题:
某操作系统的内存管理采用段式管理,内存分配采用最先适配算法,计算机的内存为50MB,刚开始时内存均未使用。经过一段时间的运行(其内存申请、释放的序列为:申请20MB—申请15MB—申请10MB—释放15MB—申请10MB—释放20MB—申请8MB)以后,内存中存在(23)。
A.2个空闲块,长度分别为10MB、12MB
B.3个空闲块,长度分别为12MB,5MB,5MB
C.1个空闲块,长度为22MB
D.4个空闲块,长度分别为5MB、5MB、5MB、7MB
第10题:
如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针,宣告内存申请失败。你是怎么处理内存耗尽的?