内存的使用_动态分配
?
c语言中允许在执行程序时动态分配内存;而只有使用指针,才能动态分配内存;
? 1.动态分配内存(void*) malloc(int size)
char *pString = (char*) malloc(12+1); ? //为字符指针动态分配内存,可以存储12个字符
? 2.分配内存时使用sizeof运算符
sizeof可以获取某类型或变量占用的内存大小(字节数),返回一个size_t类型的无符号整数
? 3.用calloc()函数分配内存(void*) calloc(int count,int elementSize)
与mcalloc相比的优点:它把内存分配各指定大小的数组;它初始化了锁分配的内存,所有的位都是0;
int *pNumber = (int *)calloc(5,sizeof(int)); ?//参数:数组个数,每个数组元素占用字节数
? 4.释放动态分配的内存free(void *)
堆上分配的内存会在程序结束时自动释放,但最好在使用完这些内存后立即释放.
例如:free(pString);
free(pNumber);
? 5.重新分配内存(void*) realloc(void *,int)
重用前面malloc,calloc,realloc分配过的内存