自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 内存泄漏+栈溢出(问题分析及解决)

内存泄漏问题描述程序中已经动态分配的堆内存由于某种原因未释放或无法释放堆内存malloc、realloc、new等动态分配一块内存,设计错误,内存没有被释放系统资源程序使用系统分配的资源比如BitMap等没有相应函数释放,导致系统资源浪费,导致系统效能降低,系统运行不稳定虚函数没有将基类的析构函数定义为虚函数问题检测windows平台下通过CRT中的库函数Linux工具valgrind检测可能泄漏的调用前后块的快照,比照前后状态定位泄漏位置栈溢出问题分析局部数组过大

2020-10-26 23:37:45 561

原创 【面试常见】算法思路题总结(大数运算+找最大的k个数+1TB数用32GB内存排序+快排稳定+找到有序数组相加为0的一对数+链表相关问题+1-100中不存在于数组a[99]的数)

1.大数运算(整型或浮点型)大数加减乘除、阶乘以下,都为人工竖式思路加法:模拟人工竖式,标记进位减法:先判断大的,模拟人工竖式,标记借位乘法:模拟竖式,从低位向高位乘,再进行各位的加法及进位除法:取模:模拟人工竖式,被除数-除数的10^n的倍数,n即商的所在位取余:如上阶乘:求阶乘位数:lg(N!) = [lg(N*(N-1)*(N-2)*...*3*2*1)]+1= [lgN+lg(N-1)+lg(N-2)+...+lg3+lg2+lg1]+1求阶乘:进位,一个个相乘,a[]标记每一

2020-10-26 23:09:16 431 1

原创 动态链接 & 静态链接(区别及优缺点)

静态链接与动泰链接的区别在C语言中,我们知道要生成可执行文件,要经历预编译、编译、汇编、链接,在链接过程中,静态链接和动态链接就出现了区别。静态链接的过程就已经把要链接的内容已经链接到了生成的可执行文件中,就算你在去把静态库删除也不会影响可执行程序的执行;而动态链接这个过程却没有把内容链接进去,而是在执行的过程中,再去找要链接的内容,生成的可执行文件中并没有要链接的内容,所以当你删除动态库时,可执行程序就不能运行。动态链接生成的可执行文件要比静态链接生成的文件要小一些。动态库与静态库的区别就不..

2020-10-19 17:31:22 1967 5

原创 文件操作【文件流指针、文件描述符】

C语言文件操作(文件流指针)打开文件(fopen)FILE* fopen(const char* path, const char* mode)path: 需要打开文件的路径加上文件名称,可以不加路径,则默认打开当前路径下的文件mode: 打开方式r: 以读方式打开,如果文件不存在则报错r+: 以读写方式打开,如果文件不存在则报错w: 以读方式打开,如果文件不存在则创建,存在则将文件截断,即清空当前内容,文件流指针指向文件头部w+: 以读写方式打开,如果文件不存在则创建,存在则将文件截断

2020-10-08 13:49:37 391

原创 minishell【模拟 shell 基本功能】

思路从标准输入当中读取数据(要执行的可执行程序)(fgets)拆分可执行程序名称和命令行参数,标准输入当中读取到的内容第一个空格之前的数据是可执行程序名称,之后都为命令行参数(isspace)创建子进程,子进程程序替换可执行程序(fork)在子进程程序替换时间内,让父进程进行进程等待(execvp、waitpid)代码实现minishell.c#include <stdio.h>#include <string.h>#include <ctype.h&gt

2020-10-08 12:40:28 323 1

原创 进程程序替换(原理及exec 函数簇)

原理替换代码段和数据段,从磁盘加载新的代码段和数据段到物理内存,用页表映射回进程虚拟地址空间的代码段、数据段,同时应该将堆栈、命令行参数等变为最初状态,pid 不变、环境变量不变、应用exec 函数簇:多个 ecec 结构的函数int execl(const char* path, const char* arg,...)path: 带路径的可执行程序,绝对或相对路径arg: 给可执行程序传递的参数,规定:第一个参数必须是可执行程序的名称...: 可变参数列表,参数列表要以 NULL 标志参数

2020-10-08 12:18:45 322

原创 C++ 类的大小(虚函数、静态成员、成员函数)

类大小符合以下几点:空类的大小为一字节为了使空类的实例占有独一无二的内存地址依旧符合 C 语言内存对齐静态成员不占用类对象存储空间类的静态成员存在于任何对象之外,对象中不包含任何与静态成员有关的数据成员函数、虚函数本身不占用类对象存储空间静态成员函数不与任何对象绑定在一起,即不包含 this 指针,所以,静态成员函数不能声明成 const,也不能在函数体使用 this 指针虚函数的情况下,有多少个虚函数表,则占用多少对象存储空间若有虚函数,但不构成继承或不构成多重继承,即只有一个虚函数表

2020-10-03 13:42:55 800

原创 new 和 malloc 的区别与运用

newC++中new运算符用于动态分配和撤销内存的运算符。开辟单变量地址空间开辟一个存放数组的存储空间,返回一个指向该存储空间的地址,int *a = new int 即为将一个int类型的地址赋值给整型指针a;int *a = new int(5) 作用同上,但是同时将整数赋值为5开辟数组空间要访问new所开辟的结构体空间,无法直接通过变量名进行,只能通过赋值的指针进行访问。用 new 可以动态开辟,撤销地址空间。在编程序时,若用完一个变量,下次需要再用,可以在每次开始使用时开辟一个空间,在用

2020-10-02 14:27:23 814

鼠标点击式扫雷项目的实现

模块:菜单、难度设置、游戏具体实现的代码,通过创建两个二维数组,分别存储雷以及被翻开的砖块,可以实现画面点击等功能

2020-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除