甲骨文面试题
来源:互联网 发布:js将时间转换为时间戳 编辑:程序博客网 时间:2024/05/24 06:31
下面的代码所分配的堆空间一样多吗?为什么?
void f1()
{
int* p = new int[100];
}
void f2()
{
int* p[100];
for(int i=0; i<100; i++)
p[i] = new int;
}
注意:
这个题目其实隐含的考察了栈空间和堆空间的概念,如果你的答案是不一样多,但是原因是因为一个只用了1个指针另一个用了
100个指针,那么你显然没机会了。当然可能只是当时粗心,但是,面试不是做慈善。
正确答案是不一样,因为其实每次申请堆空间的时候都会多出一个操作系统所用的“信息”空间,这些空间附带在你申请到的空间之前,用于标识
这个空间的大小等信息。因此,一次性申请100个空间那么,这个“信息”空间只有一个,而分开申请100次,那么就有了100个“信息”空间。
所以说,两种申请方法,你能用的堆空间一样多,但是真正从系统中消耗的空间是不同的,f2消耗的堆空间比较多。
- 甲骨文面试题
- 微软,谷歌,甲骨文,拳头,面试题
- 面试题....
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- STL中迭代器
- 给Ubuntu安装Windows的字体
- 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(ma
- Git: Why 'Everything up-to-date' when pushing
- java类集框架小结
- 甲骨文面试题
- magento 资源配置 mysql4-install-0.1.0.php为什么没有执行 ?
- 定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类TeacherCadre(
- 算法练习(字符串压缩)
- 定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleMana
- socket编程复习(7)-非阻塞socket
- TX2440裸机程序-LCD
- 代码仔的实验室_现有功能介绍 & 未来功能预告 & 意见征集
- Cocos2d-x基本概念整理(二)CCAction