函数调用、理解递归 对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈。 代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写 数据段:保存初始化的全局变量和静态变量,可读可写不可执行 BSS:未初始化的全局变量和静态变量 堆(Heap):动态分配内存,向地址 ...
分类:
编程语言 时间:
2019-02-23 10:40:32
阅读次数:
212
php常用运行方式pm=dynamic动态分配pm=static固定分配php内存优化:针对小型服务器:pm使用ondemand模式,具体配置如下:pm=ondemandpm.max_children=5#最大php进程数;pm.process_idle_timeout=10s#空闲进程保持10s后自动退出,避免占用内存;pm.max_requests=200#php处理的最大请求数;reques
分类:
Web程序 时间:
2019-02-21 11:09:12
阅读次数:
222
用途 需要建立多棵独立的线段树 线段树维护的值域较大(1e9),但是操作次数较少(1e5) 特征 类似主席树的原理,动态分配每个树节点的位置(lson[],rson[]), 每次只更新一条链 ,但是主席树是建立一颗新的树,动态开点线段树是在一棵树上不断添加节点(还是一棵树) 类似线段树的原理,pus ...
分类:
其他好文 时间:
2019-02-09 13:23:05
阅读次数:
202
缓冲区(Buffer) 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1、减少实际的物理读写次数 2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的 ...
分类:
其他好文 时间:
2019-02-03 12:52:24
阅读次数:
165
//二位数组参数传递 //1. void display1(int arr[][4], const int rows) { for (int i = 0; i < rows; i++) { for (int j = 0; j < 4; j++) { cout << arr[i][j] << ' ';... ...
分类:
编程语言 时间:
2019-02-03 12:31:07
阅读次数:
185
在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传 ...
分类:
编程语言 时间:
2019-02-01 11:35:45
阅读次数:
179
一 简介:linux内存和mysql二 分类 1 用户空间和内核空间 用户空间内存,从低到高分别是五种不同的内存段 1 只读段 包含代码和常量等 2 数据段 包含全局变量等 3 堆,包含动态分配的内存,从低地址开始增长 4 文件映射段,包括动态库,共享内存等,从高地址开始向下增长 5 栈,包括局部变 ...
分类:
数据库 时间:
2019-01-31 15:46:54
阅读次数:
208
java校招一些面试的题目 java校招一些面试的题目 java校招一些面试的题目 java校招一些面试的题目 数组和链表的区别 数组静态分配内存,链表动态分配内存; 数组在内存中连续,链表不一定连续; 数组元素在栈区,链表元素在堆区; 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度 ...
分类:
其他好文 时间:
2019-01-30 21:40:26
阅读次数:
157
IPv6地址表示 IPv6地址可以表示为128位由0、1组成的字符串,为了便于计算机理解,将128位的二进制字符串表示为32位的十六进制字符串,为了便于理解,人们将其划分为8组,组与组之间用 :隔开,每组4个字符(也就是16位)。 128位的二进制数 通过由冒号分隔的32位的8组16进制字符串 为了 ...
分类:
其他好文 时间:
2019-01-30 00:18:52
阅读次数:
153
1、栈是线程私有的;堆事线程公有的。2、栈主要用于存储局部变量和对象的引用变量;堆主要用于存储实例化的对象,数组,由JVM动态分配内存空间。3、栈中的变量超过其作用域后,JVM会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用;在堆中分配的内存,由JVM自动垃圾回收器来管理。4、如果 ...
分类:
其他好文 时间:
2019-01-29 22:01:35
阅读次数:
198