C语言动态内存分配与释放
所属分类 c
浏览量 789
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