首页  

C语言动态内存分配与释放     所属分类 c 浏览量 794
void *malloc(size_t size);
void *calloc(size_t n, size_t size);
void *realloc(void *ptr, size_t size);
void free(void *ptr);

malloc   分配内存但不初始化
calloc   分配内存并清零
realloc  调整已分配内存块的大小
free     释放内存


#include "stdio.h"
#include "stdlib.h"

#define N 9
int main(int argc, char *argv[]){
  int *nums = malloc(N * sizeof(int));
  for (int i = 0; i < N; i++){
    printf("%d ", nums[i]);
  }
  printf("\n");

  int *nums2 = calloc(N, sizeof(int));
  for (int i = 0; i < N; i++){
    printf("%d ", nums2[i]);
  }
  printf("\n");

  int *nums3 = realloc(nums2, N + 10);
  for (int i = 0; i < N + 10; i++){
    printf("%d ", nums3[i]);
  }
  printf("\n");

  free(nums);
  free(nums3);
  
  return 0;
}

上一篇     下一篇
C语言字符串转浮点数

C语言排序和搜索

C语言 rand srand rand_r

exit atexit 及 abort

C语言stdlib使用实例

程序各个段text data bss stack heap