使用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()函数释放或者是程序完全执行完毕后释放