w********g 发帖数: 106 | 1 都是C++的题:
怎么找memory leak
我回答有现成的工具但我没用过。也可以自己写个计数器记录new/delete/malloc/free
的次数,在runtime边运行边记录。他追问:整个project就一个计数器吗?我回答每个
class一个计数器。不知对错。
TCP和UDP的区别
STL里map和hashmap的区别
什么是纯虚函数
如果父类有一个纯虚函数,子类却没有覆盖这个纯虚函数,那么子类对象调用这个函数
时会怎样?
逻辑题:有三个桶,一个只装白球,一个只装黑球,一个黑白都装。有三个标签,一个
写着“白”,一个写着“黑”,一个写着“混合”。三个标签全都贴错了。
问最少需要拿出几个球才能知道每个桶到底装了什么?
我回答一个。 |
r**h 发帖数: 1288 | 2 第一题同不懂。。
free
【在 w********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 都是C++的题: : 怎么找memory leak : 我回答有现成的工具但我没用过。也可以自己写个计数器记录new/delete/malloc/free : 的次数,在runtime边运行边记录。他追问:整个project就一个计数器吗?我回答每个 : class一个计数器。不知对错。 : TCP和UDP的区别 : STL里map和hashmap的区别 : 什么是纯虚函数 : 如果父类有一个纯虚函数,子类却没有覆盖这个纯虚函数,那么子类对象调用这个函数 : 时会怎样?
|
r*******e 发帖数: 7583 | 3 查memory leak最简单的是reference counting
应该是每个allocated object一个计数器
free
【在 w********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 都是C++的题: : 怎么找memory leak : 我回答有现成的工具但我没用过。也可以自己写个计数器记录new/delete/malloc/free : 的次数,在runtime边运行边记录。他追问:整个project就一个计数器吗?我回答每个 : class一个计数器。不知对错。 : TCP和UDP的区别 : STL里map和hashmap的区别 : 什么是纯虚函数 : 如果父类有一个纯虚函数,子类却没有覆盖这个纯虚函数,那么子类对象调用这个函数 : 时会怎样?
|
r*******e 发帖数: 7583 | 4 纯虚函数
如果是C++,子类要实例化的话必须实现父类的pure virtual function
否则编译都过不了啊,会在创建子类实例的时候报错
就算能过编译的话,子类的vtable的那个函数entry是null,估计调用会crash
free
【在 w********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 都是C++的题: : 怎么找memory leak : 我回答有现成的工具但我没用过。也可以自己写个计数器记录new/delete/malloc/free : 的次数,在runtime边运行边记录。他追问:整个project就一个计数器吗?我回答每个 : class一个计数器。不知对错。 : TCP和UDP的区别 : STL里map和hashmap的区别 : 什么是纯虚函数 : 如果父类有一个纯虚函数,子类却没有覆盖这个纯虚函数,那么子类对象调用这个函数 : 时会怎样?
|
e******u 发帖数: 1067 | 5 这是避免memory leak吧,所谓的smart pointer
【在 r*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 查memory leak最简单的是reference counting : 应该是每个allocated object一个计数器 : : free
|
r*******e 发帖数: 7583 | 6 避免的意思不就是检测到可能的leak然后自动回收吗?
检测的思路是一样的
【在 e******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这是避免memory leak吧,所谓的smart pointer
|
e******u 发帖数: 1067 | 7 哦,也可以这么理解
不过貌似有那种测runtime内存泄漏的工具的吧
【在 r*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 避免的意思不就是检测到可能的leak然后自动回收吗? : 检测的思路是一样的
|
r*******e 发帖数: 7583 | 8 工具有很多,最常见的免费的valgrind和收费的IBM purify
不过面试应该不是问用什么工具,而是用什么思路
ref counting是一种,另一种是mark & sweep
在任意时候遍历所有的stack和global vars,看他们能reach到哪些objects,作上标记
然后遍历整个memory set,没标记而又显示in use的就是leak
【在 e******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 哦,也可以这么理解 : 不过貌似有那种测runtime内存泄漏的工具的吧
|
t****a 发帖数: 1212 | 9 最后一题,为什么能区分呢?
free
【在 w********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 都是C++的题: : 怎么找memory leak : 我回答有现成的工具但我没用过。也可以自己写个计数器记录new/delete/malloc/free : 的次数,在runtime边运行边记录。他追问:整个project就一个计数器吗?我回答每个 : class一个计数器。不知对错。 : TCP和UDP的区别 : STL里map和hashmap的区别 : 什么是纯虚函数 : 如果父类有一个纯虚函数,子类却没有覆盖这个纯虚函数,那么子类对象调用这个函数 : 时会怎样?
|
m****i 发帖数: 650 | |
c*******y 发帖数: 1630 | 11 拿一个mix的。
【在 t****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 最后一题,为什么能区分呢? : : free
|
x*****0 发帖数: 452 | |