最近学习中,遇到一些平时很少使用的C++语言知识,其实扩展开去也不仅仅限于C++语言知识,很多面向对象的语言都会遇到类似的问题。今天结合资料做一下小结,也希望你能够帮助到有需要的朋友。 通常对象可以定义在对或栈中,一般用new,malloc等函数或运算符声明的对象定义在堆中,其他的定义在栈中。栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等,其组织方式类似于数据结构中的栈。...
分类:
其他好文 时间:
2014-10-07 23:46:34
阅读次数:
273
STL内存创建
1. Stl内存创建__malloc_alloc_template
STL的常用的内存创建参考文件: stl_alloc.h,文件中定义了__malloc_alloc_template模板库,创建与释放使用C方法malloc、free、realloc,模板库里面主要对外提供了函数:
allocate: 分配内存
deallocate: 释放内存...
分类:
其他好文 时间:
2014-10-07 09:46:23
阅读次数:
279
C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。
一:
#include
#include
int g_i = 100;
int g_j = 200;
int g_k, g_h;
int main()
{
const int MAXN = 100;
int *p = (int*)malloc(MAXN * sizeof(int));...
分类:
编程语言 时间:
2014-10-06 19:45:20
阅读次数:
321
代码: #include?<stdio.h>
#include?<stdlib.h>
int?main(void)?{
const?size_t?SIZE?=?5;
//?函数malloc的返回值类型是void*
//?函数原型:void*?malloc(size_t)
int*?p?=?malloc(SIZE?*...
分类:
其他好文 时间:
2014-10-05 16:55:58
阅读次数:
169
在用gpreftools优化gko_pool的时候我发现一个问题,malloc竟然成了性能瓶颈 由于在每个连接建立的时候gko_pool默认会为读写各分配2KB的buf备用,这个是比较固定的 每个连接的的生命周期会伴随着4KB大小的内存malloc & free 正好可以写个只能分配固定大小内存的“...
分类:
其他好文 时间:
2014-10-04 03:20:35
阅读次数:
180
MIT的C指针练习代码
觉得很好的代码,贴出来. 大概瞄了一眼,感觉不是很难 现在比较忙,以后做解析(如果有必要的话)
#include
#include
void
f(void)
{
int a[4];
int *b = malloc(16);
int *c;
int i;
printf("1: a = %p, b =...
分类:
其他好文 时间:
2014-10-03 18:03:04
阅读次数:
205
linux内存管理之malloc、vmalloc、kmalloc的区别
malloc的实现原理...
分类:
系统相关 时间:
2014-10-02 21:25:33
阅读次数:
224
动态分配内存:头文件 stdlib.h malloc:分配内存 calloc:分配内存,并清零 realloc:调整已分配的内存块大小 演示样例: int *p=(int *) malloc(3*sizeof(int));//分配内存,成功返回首地址,失败返回NULL free(p);p=NUL.....
分类:
其他好文 时间:
2014-10-02 19:39:33
阅读次数:
179
注意几点:
分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。
所以应该使用标准库提供的allocator类来实现内存的控制。当然也可以重载operator new操作符,因为二者都是使用malloc作为底层实现,所以直接采用malloc也可以。
对象的复制必须使用系统提供的uninitialized_fill和uninitialized_...
分类:
编程语言 时间:
2014-10-02 18:37:43
阅读次数:
231
void getMemory(char *p){p=(char *)malloc(100);}char * getMemory(char *p){char ch[]="hello world";return ch;}char * getMemory(char **p){*p=(char*)mallo...
分类:
其他好文 时间:
2014-10-01 19:47:01
阅读次数:
186