(收集整理from web)1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析...
分类:
其他好文 时间:
2015-03-04 22:33:04
阅读次数:
116
C++拾遗--new delete 重载
前言
new和delete是操作动态内存的一对操作。对它们重载可以对内存管理进行有效的定制。
正文
1.局部重载
特别针对某一类型,对new和delete进行重载,可以对该类型对象的动态创建实行监控。如下代码:
代码一...
分类:
编程语言 时间:
2015-02-21 19:56:47
阅读次数:
293
一、动态内存管理 动态内存管理是一个真实的堆(Heap)内存管理模块,可以在当前资源满足的情况下,根据用户的需求分配任意大小的内存块。而当用户不需要再使用这些内存块时,又可以释放回堆中供其他应用分配使用。RT-Thread系统为了满足不同的需求,提供了两套不同的动态内存管理算法,分别是小内存管理.....
分类:
编程语言 时间:
2015-02-10 21:31:53
阅读次数:
448
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。
Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,
为什么?
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str 仍然为 NULL
str...
分类:
其他好文 时间:
2015-02-09 11:03:49
阅读次数:
144
2015.2.2星期一,阴天内存管理:内存的分配和释放等静态和动态内存:主要是在释放方式上的区别静态变量:编译时就已经确定,定义在函数外面自动变量:在程序运行时才能在栈中确定只读数据节:存放常量的地方,包括字符常量,不修改的数据查看数据存放在那个节点:(用命令)readelf -S (查看节点号和....
分类:
其他好文 时间:
2015-02-03 00:26:31
阅读次数:
251
一、概述C语言是不能直接定义动态数组的,数组必须在初始化时确定长度。如果要在程序运行时才确定数组的长度,就需要在运行的时候,自己去向系统申请一块内存用动态内存分配实现动态数组。二、动态内存分配函数1、malloc()函数void *malloc(unsigned int size)分配size个字节...
分类:
编程语言 时间:
2015-02-01 07:02:43
阅读次数:
275
内存分配方式
内存分配方式一共有三种:
(1)从静态存储区域分配;
内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,例如,全局变量,静态变量。
(2)在栈上创建;
在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束后这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
(3)在堆上分配,亦称动态内存...
分类:
编程语言 时间:
2015-01-29 15:58:14
阅读次数:
197
// main.m// 1-27随堂笔记//讲师: 小辉//笔者: 王学文// Created by lanouhn on 15/1/27.// Copyright (c) 2015年 lanouhn. All rights reserved.//动态内存分配(DynamicMerry)#impor...
分类:
其他好文 时间:
2015-01-27 23:14:58
阅读次数:
227