一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实...
分类:
其他好文 时间:
2015-03-15 19:33:58
阅读次数:
151
一、sizeof
sizeof(...)是运算符,在头文件中typedef为unsigned
int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所...
分类:
其他好文 时间:
2015-03-15 09:32:06
阅读次数:
117
要求定义一个数组类,动态分配数组大小,并实现反转与排序操作。
代码如下:
class Array {
private int a[] = null;
private int foot=0;
public Array(int len) {
if (len > 0)
this.a = new int[len];
else
this.a = new int[1];
}
...
分类:
编程语言 时间:
2015-03-11 21:41:28
阅读次数:
134
进程的地址空间中有很大的一块区域是被称作“堆”的区域
其地址空间是在进程的.data和.bss的地址增长方向到动态库区域的低地址部分的范围
堆可以理解成是进程的一大块内存区域(已经分配实际物理内存,但并不是所有的地址空间都分配了物理内存,其大小根据系统类型和版本来定)
用来供进程中的程序动态分配内存空间
通常,进程通过向操作系统批发一大块实际的内存空间交给glibc管理以提高动态内存请求和释放的效率
在程序要请求动态分配比较小的内存空间的时候,glibc从这一大块内存空间中分配之
当程序要请求动态分配较大的...
分类:
系统相关 时间:
2015-03-07 20:03:14
阅读次数:
194
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实...
分类:
其他好文 时间:
2015-03-05 22:20:39
阅读次数:
166
1.动态分配一维数组
int *p = (int *)malloc(sizeof(int)*10);
//或者int * p = new int[10];
2.动态分配二维数组 2 X 5
int *p = (int *)malloc(sizeof(int)*10);
//或者int *p = new int[10];
int (* pp)[5] = (int (*)[5])p;
3.动...
分类:
编程语言 时间:
2015-03-02 22:35:37
阅读次数:
216
用户空间的页面有下面几种: 1、普通的用户空间页面,包括进程的代码段、数据段、堆栈段、以及动态分配的“存储堆”。 2、通过系统调用mmap()映射到用户空间的已打开文件的内容。 3、进程间的共享内存区。 这些页面的的周转有两方面的意思。 1、页面的分配,使用,回收。如进程压栈时新申请的页面,这类页面不进行盘区交换,不使用时释放得以回收。 这部分通过一个场景来解释...
分类:
系统相关 时间:
2015-03-01 10:35:01
阅读次数:
288
C++拾遗--malloc free与new delete的同与不同
前言
在C中我们常使用malloc和free来动态分配与释放内存,在C++中对应的是new和delete。这里我们来探讨下他们的同与不同。
1.内置类型
对相同的代码进行调试,查看内存...
分类:
编程语言 时间:
2015-02-20 20:54:22
阅读次数:
156
C++拾遗--智能指针
前言
内存泄露是常见的问题,新标准中的智能指针从根本上解决了这个问题。所谓的智能指针,其智能性体现在:当没有对象使用某块动态分配的内存时,那就自动释放这片内存。
智能指针
下面这段程序可耗尽内存,导致程序崩溃。...
分类:
编程语言 时间:
2015-02-19 20:47:03
阅读次数:
240