1、数组初始化时候memset和{0}的区别。
int a[10000] = {0}
和
int a[10000];
memset(a, 0, sizeof(int)*10000);
什么区别呢?如果用第一种方式则会在全局数据区中分配sizeof(int)*10000这么大一块存储空间用来保存数组a的初始值。显然浪费内存
2、window下编写的代码在unix下有可能会编译不过,因为window下文件的编码方式尤其是回车换行与unix不同。解决办法是使用unix下的命令dos2unix来转换文件
3、memory leak分析工具的原理。我们可以简单的将系统分配和释放内存的位置输出一中log,其中包含申请内存的函数名,甚至于当时的函数调用栈。然后再编写一个log分析工具将程序执行时申请了但没有释放的内存过滤出来,就是一个简单的memory leak分析工具。