vivo C++面经

1.自我介绍
2.讲一下C new和malloc的区别

3.malloc内存分配机制是怎么样的,在哪里分配内存,最大可以申请多大的内存(三连击?)

4.讲一下new运算符的原理(底层使用了operator new(),最终调用了malloc),new运算符重载用过吗,怎么写重载函数,重载的定义

5.memset函数的作用,有哪些参数

6.linux系统应用程序的内存空间是怎么分配的(内核空间和进程空间),一般进程空间多大,内核空间多大,进程空间分布是什么样的,堆区最大空间是多少

7.c   模板机制了解吗,讲一下原理,类模板和函数模板在定义时有什么区别

8.开始问数据结构,你了解二叉树吗,讲一下原理,平衡二叉树的原理讲一下,二叉树的遍历方式,二叉树的最大节点数,二叉树插入删除的时间复杂度,二叉树插入的时间复杂度与树的节点数和树深度的关系,二叉树的优点(二叉树这部分问了10几分钟?)

9.数组和链表的区别讲一下,它们的应用场景

10.c 继承机制讲一下,虚继承了解吗,说一下原理

11.虚函数机制,一个类有虚函数,有成员变量,求所占的内存大小(这里一开始我没有考虑内存对齐,就直接按虚指针和成员变量的大小说,后面面试官提醒了一下才改过来)

12.看到简历上写了网络编程这块,就问了一下tcp和udp的区别,它们的应用场景(面试官拿王者荣耀来举例子,问像王者荣耀这样的游戏,服务器与客户端通信应该用什么机制),怎么实现服务器高并发,多连接

13. socket编程,问了connect函数和accept函数的作用和参数,epoll的原理大概讲一下

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注