【深信服】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)

一个无序的序列,前面全部是奇数,后面全部是偶数

前后各加一个游标,往中间走,两个游标相等,结束

你比较擅长哪一块?

面试官都无奈了,感觉问啥我都不会……

建议:基础要抓好

发表评论

后才能评论