数据结构复习——malloc动态内存分配

betball贝博app 数据结构, 软件 461 次浏览 没有评论

使用malloc函数前要加头文件#include <malloc.h>

malloc函数解决了数组元素个数无法改变的问题。

malloc(sizeof(*))返回第一个字节的地址。(无意义的地址:干地址)

比如分配len长度的一个数组,可用下面代码实现

int *Parr = (int *) malloc(sizeof (int)* len);

实现了变量决定数组的元素个数!

malloc返回的只是第一个字节的地址,但是不同数据类型一个值所占的字节数不同,malloc前面的(int*)强制类型转换则将此地址转化为int型数据的地址,即4个字节为一个值。

此时pArr即代表第一组4个字节的首地址,与int pArr[5];中pArr的含义相同。使用malloc定义的动态数组的方法和普通数组方法一样,可以使用pArr[n];,或者*(pArr+n);

使用传统静态数组,数组中字节一直占用内存。但是动态数组,可以使用free(pArr);释放以被其他程序使用。

malloc函数分配的内存不会因为子函数结束而释放,只能手动使用free()函数释放或者是程序完全执行完毕后释放

发表评论

邮箱地址不会被公开。

Go