![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
IT_xiaoye
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
内存中的‘堆’和‘栈’ 我们主要讲内存上的堆区和栈区,数据结构中的堆和栈不作分析 理解: 栈区:栈上分配的内存空间是连续的,主要用来存放函数内部的局部变量以及函数参数等,栈由操作系统自动分配,自动释放,生命周期很短,函数调用完,栈就会立马被释放,且栈中不宜存放大量数据,可能会出现栈溢出的问题。 堆区:一般由程序员手动分配空间手动释放,在C语言中用malloc,realloc,callo...原创 2018-04-01 21:47:34 · 392 阅读 · 0 评论 -
malloc,calloc,realloc三兄弟的那些事儿
概念: malloc:用于申请一块指定大小的连续的内存区域,注意是在堆上开辟空间,如果开辟成功,返回该内存空间的首地址,如果开辟失败,返回空。 calloc:和malloc用法很像,都是为了在堆上开辟内存空间,不同的是,calloc函数会将开辟的内存空间初始化为0,而malloc开辟的空间内部大部分都是随机数值,不具备初始化的功能 realloc:用来调整已开辟内存空间的大小,调整时可扩大可缩...原创 2018-04-02 14:12:37 · 209 阅读 · 0 评论 -
C语言实现简单网络版五子棋(服务器与客户端)
本小游戏是在Linux下实现的(因为我不会Windows网络编程),这次实现的仅仅是服务器与客户端之间进行互动,彼此只要互相发送下点的坐标就ok,用结构体存放坐标,各自收到坐标后进行下子,以及判断结果。 本篇文章里只涉及部分代码,更多是步骤介绍,实现方法以及思路 源码在这里()->https://github.com/Xiaoyejun/learngit/commit/44caec515...原创 2018-05-20 12:46:20 · 6617 阅读 · 7 评论 -
atexit函数和on_exit函数
atexit函数(设置程序正常结束前调用的函数) 相关函数 _exit,exit,on_exit 函数原型 #include<stdlib.h> int atexit (void(*function)(void)); 返回值 如果执行成功则返回0,否则返回-1,失败原因存于errno中。 函数说明 atexit()用来设置一个程序正常结束前调用的函数。当程序通过调用e...转载 2018-05-22 16:51:52 · 1897 阅读 · 0 评论 -
详解C/C++中的函数栈帧
函数栈帧就是进程在调用函数时为其在栈空间上开辟了一段空间,执行过程调用,一个过程调用包括将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。另外,它还必须在进入时为过程的局部变量分配空间,并在退出时释放这些空间。 一个栈帧构建好后,会有两个寄存器标识该栈帧,即基址寄存器ebp(指向栈底)和栈顶寄存器esp(指向栈顶),两个寄存器中保存了栈顶和栈底的地址,对于栈帧中一些信息的访问...原创 2018-07-01 19:32:30 · 1247 阅读 · 0 评论