摘要:
一定要弄懂GetMemory 堆栈 栈中分配局部变量空间,是系统自动分配空间。定义一个 char a;系统会自动在栈上为其开辟空间。由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。 堆区分配程序员申请的内存空间,堆上的数据只要程序员不 阅读全文
摘要:
一、内存基本构成 可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。 栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创 阅读全文
摘要:
1.申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用 阅读全文
摘要:
static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类: 如果这个静态函数出现在类里,那么它是一个静态成员函数; 静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员。 其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内 阅读全文
摘要:
#include两种声明区别 引用的头文件不同 #include < > 引用的是编译器的类库路径里面的头文件。 #include“ ”引用的是你程序目录的相对路径中的头文件。 用法不同 #include < > 用来包含标准头文件(例如stdio.h或stdlib.h). #include“ ”用 阅读全文
摘要:
OSI:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层 TCP/IP:数据链路层,网络层,传输层,应用层 TCP与UDP区别: 1、基于连接与无连接; 2、对系统资源的要求(TCP较多,UDP少); 3、UDP程序结构较简单; 4、流模式与数据报模式 ; 5、TCP保证数据正确性,UDP 阅读全文
摘要:
树遍历方法大全 void fun(TreeNode* root) { if (!root)return; cout << root->val<<','; fun(root->left); fun(root->right); }//递归先序遍历,中序、后序遍历同理 void fun(TreeNode* 阅读全文
摘要:
vim 中有三种工作模式,分别是命令模式,输入模式,末行模式 刚进入编辑器是处于命令模式,切换到输入模式可以输入:i,I,o,O,a,C a:在光标之后插入A:在光标所在行末插入i:在光标处插入I:在光标所在行首插入o:跳转到光标下一行插入行O:跳转到光标上一行插入行C:清除光标所在位置后的所有内容 阅读全文
摘要:
链表初始化代码: Node* list_init(void){ Node *head = (Node *)malloc(sizeof(Node)); Node *p1 = (Node *)malloc(sizeof(Node)); Node *p2 = (Node *)malloc(sizeof(N 阅读全文
摘要:
1、无名管道通信 无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2、有名管道通信 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 3、消息队列 阅读全文