关于malloc和free这两个函数,malloc的用法示例:int *p=(int *)malloc(2*sizeof(int)); 它表示在堆中开辟一块大小为2*sizeof(int)的一块内存空间,p指向这块内存空间的起始地址,malloc前面的(int*)表示这块空间用来存储int型数组。开辟了这块空间后,可以修改这个空间中的值,例如为*p,*(p+1)做赋值操作,如果再次使用malloc...
分类:
其他好文 时间:
2014-08-08 18:08:36
阅读次数:
200
看个小例子:char* fun1(){ char * p = (char*)malloc(100); p = "helloww"; return p;}void fun2(char *p){ p = "hello";}fun1 完成了指针的赋值和返回指针区域。 fun2 因为p的局部赋值而无法再函....
分类:
编程语言 时间:
2014-08-08 17:57:36
阅读次数:
269
定义一颗字典树:
struct Trie
{
int n; // n可以存储相关有用信息,视情况而定
Trie *next[maxn]; //maxn视字典树中有多少种元素而定
}
定义字典树的根并初始化:
Trie *root;
void init()
{
root = (Trie *)malloc(sizeof(Trie));
root ->...
分类:
其他好文 时间:
2014-08-08 16:03:16
阅读次数:
170
1. Installsudo apt-get install valgrind2. If memory leakexample code:/* memleak.c */#include void* memleak(int n){ void *p = malloc(n); return p...
分类:
其他好文 时间:
2014-08-06 01:27:10
阅读次数:
326
利用指针来进行数据的交换;2014-08-01函数的设计如下:void swap(void *ap,void *bp,int size){ char *buffer=(char *)malloc(size); memcpy(buffer,ap,size); memcpy(ap,bp,size); m...
分类:
其他好文 时间:
2014-08-05 18:21:19
阅读次数:
251
typedef struct node{ int count; struct node *next[MAX];}Trie;Trie *Newnode()//建立结点&初始化a{ int i; Trie *T; T = (Trie *)malloc(sizeof(Trie...
分类:
其他好文 时间:
2014-08-05 18:12:09
阅读次数:
201
我们知道在c/c++中定义的数组大小必需要事先定义好,他们通常是分配在静态内存空间或者是在栈内存空间内的,但是在实际工作中,我们有时候却需要动态的为数组分配大小,在这里c库中的malloc.h头文件中的malloc函数就为您解决了问题,它的函数原形是void* malloc(size_t size),在动态开辟的内存中,在使用完后我们要使用free函数来释放动态开辟的内存空间。
下面我们来看...
分类:
编程语言 时间:
2014-08-04 17:58:07
阅读次数:
147
#include
#include
#include
/*
避免错误:
size 进行判断后在进行动态分配。
为什么?
malloc在不同编译器上有不同的实现,有的申请0大小返回NULL,
有的就可以返回一个地址,似乎后者较为常见。
当malloc分配内存时它除了分配我们指定SIZE的内存块,还会分配额
外的内存来存储我们的内存块信息,用于维护该内存块。
其实内存是分片的, 比喻说你malloc(10); 不是真的给你10个字节,...
分类:
其他好文 时间:
2014-08-04 17:54:47
阅读次数:
180
??
未初始化的全局变量和静态变量在bss段中,已经初始化的全局变量和静态变量在数据段中(DS)
自定义申请的内存空间在堆中 void *malloc(size_t size)
free(p) ; p=NULL; 当指针指向malloc函数的返回值时,用完后要做内存释放和令指针指向NULL,当只有free(p)时还能打印出p指向的这片地址内容,但内容不确定
悬空指...
分类:
其他好文 时间:
2014-08-04 17:38:17
阅读次数:
206
1. Malloc:malloc/free是C++和C的标准库函数,可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用 malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是 库函数而不是运算符,...
分类:
其他好文 时间:
2014-08-04 13:37:38
阅读次数:
241