DSP

动态内存分配与释放

2019-07-13 19:57发布

1. 动态内存分配        动态内存分配与释放经常在数据结构的链表、树和图结构中。动态内存分配在需要时进行,不需要时即释放,不需要提前分配,就是根据实际需要而分配。        内存的动态分配需要使用函数 malloc、函数free和运算符sizeof来实现。函数malloc的原型是:    void* malloc(unsigned int size);        函数malloc的作用是在内存中分配一个长度为size的连续存储空间。函数的返回值是一个指向分配空间的起始位置的指针。分配失败,返回NULL。若为类 struct node 结构体分配一块内存空间,可以使用如下语句实现:    p=(struct node*)malloc(sizeof(struct node));        函数 free 的原型是:
    void free(void *p);        函数 free 的作用是释放 p 指向的内存空间。2. strlen 和 sizeof 的使用char str[20]={0,1,2,3,4,5,6,7,8,9}; strlen(str)=10; // strlen 计算字符串的长度,以'