NO1void GetMemory(char *p){p=(char *)malloc(100);}void Test(){char * str=NULL;GetMemory(str);strcpy(str,"Hello world");printf(str);}实质:GetMemory(str)在...
分类:
其他好文 时间:
2015-03-02 00:53:43
阅读次数:
193
/*
============================================================================
Name : TestMemory.c
Author : lf
Version :
Copyright : Your copyright notice
Description : malloc...
分类:
其他好文 时间:
2015-03-01 18:29:31
阅读次数:
139
Linux 中的进程包含3个段,分别为“数据段”、“代码段”和“堆栈段”。· “数据段”存放的是全局变量、常数以及动态数据分配的数据空间(如malloc 函数取得的空间)等。· “代码段”存放的是程序代码的数据。· “堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量。Linux 下的...
分类:
系统相关 时间:
2015-02-28 14:22:11
阅读次数:
190
场景:
1. 有些频繁使用的指针变量地址不对齐的话运行效率和对齐后的运行效率差别很大,所以在创建堆空间时,有必要对内存地址对齐提高运行效率.
2. 有些音视频处理的代码或者说自定义的malloc基本都是地址对齐的.
3. 使用原子访问的互锁函数时,InterlockedExchangeAdd都需要地址对齐.
3. 主要还是宏APR_ALIGN, 这个说是Apache源码里,就借用一下吧。...
分类:
编程语言 时间:
2015-02-27 23:03:20
阅读次数:
368
(一)#include #include void getmemory(char *p){ p=(char *) malloc(100); strcpy(p,"hello world");}int main( ){ char *str=NULL; getmemory(str)...
分类:
其他好文 时间:
2015-02-27 22:55:02
阅读次数:
191
内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。
(1)针对特殊情况,例如需要频繁分配释放固定大小的内存对象...
分类:
其他好文 时间:
2015-02-27 21:36:28
阅读次数:
244
realloc 用过很多次了。无非就是将已经存在的一块内存扩大。char* p = malloc(1024);char* q = realloc(p,2048);现在的问题是我们应该如何处理指针 p。 刚开始按照我最直观的理解,如果就是直接将 p = NULL;。 到最后只需要释放 q的空间就可以了...
分类:
其他好文 时间:
2015-02-26 16:31:47
阅读次数:
114
方法一:#include #include int main()
{ int **a = malloc(sizeof(int)*3); a[0]= malloc(sizeof(int)*2); a[1]= malloc(sizeof(int)*2); a[2]= malloc(sizeof(int)...
分类:
编程语言 时间:
2015-02-23 15:24:26
阅读次数:
224
C++拾遗--malloc free与new delete的同与不同
前言
在C中我们常使用malloc和free来动态分配与释放内存,在C++中对应的是new和delete。这里我们来探讨下他们的同与不同。
1.内置类型
对相同的代码进行调试,查看内存...
分类:
编程语言 时间:
2015-02-20 20:54:22
阅读次数:
156
1.内存泄漏的定义
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该 内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
2、内...
分类:
编程语言 时间:
2015-02-18 11:54:44
阅读次数:
246