内存的使用_动态分配

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分配过的内存

猜你喜欢

转载自quding0308.iteye.com/blog/1666364