【深信服】C++岗-校招软开工程师一面
一面 9.19 25min
自我介绍
C++内存管理
double free知道吗?什么情况会造成?
coredump?
Windows写代码还是Linux?
程序崩溃
什么是野指针?
怎么避免野指针?把指针指向的内存释放就能避免野指针吗?
野指针一般由两种原因造成:
一个是定义的指针没有初始化,指针指向随机值;
二是申请了内存,内存释放掉了,但是指针没有清空,相当于指向了无效的地址
避免:初始化;最后清空,赋值为NULL。
结构体对齐
代码
struct A
{
char a;
int b;
double d;
};
占24个字节
结构体的比较,怎么判断两个对象是否相等
A a,b;
怎么判断相等?
用,要重载
memcmp函数能不能用?为什么?
不能,有字节对齐的机制,里面是乱码
想用怎么办?
两个办法:
一,把字节对齐的机制取消
二,把整个内存初始化一遍,全部清零,再赋值
字符串匹配:判断一个字符串中的字母是不是都包含在另一个中
奇偶互换,前面全部是奇数,后面全部是偶数,算法复杂度要求:o(n)
一个无序的序列,前面全部是奇数,后面全部是偶数
前后各加一个游标,往中间走,两个游标相等,结束
你比较擅长哪一块?
面试官都无奈了,感觉问啥我都不会……
建议:基础要抓好