两种情况:
要使用的内存大小已确定——栈空间不够用。
内存不确定,但是可能很占内存。
总而言之,数据结构尽量手动分配内存,养成好习惯非常重要!
函数原型:void *malloc(unsigned int num_bytes); //分配长度为num_bytes字节的内存块
如何使用?
int *p;
p = (int*)malloc(sizeof(int) * 128);
//分配128个整型存储单元,并将这128个连续的整型存储单元的首地址存储到指针变量p中
double *pd = (double*)malloc(sizeof(double) * 12);
//分配12个double型存储单元,并将首地址存储到指针变量pd中
free(p); //记得释放不再使用的内存,以防内存泄漏(比如漏油!!!)
free(pd);
p = NULL;
pd = NULL;
指针用完赋值NULL是一个很好的习惯。