首页 > 内存

告别内存漏!教你轻松掌握C语言内存释放技巧

内存区域 描述 相关函数
栈区(Stack) 用于存储部变量,函数参数等,由译器自动管理。 自动分配和释放,无需手动作。
堆区(Heap) 用于动态分配内存,需要手动申请和释放。
  • malloc
    分配内存
  • free
    释放内存
  • calloc
    分配并初始化内存
  • realloc
    调整已分配内存的大小
全区(静态区) 存储全变量和静态变量,译时分配,程序结束时释放。 自动管理,无需手动作。
代码区 存储程序的机器代码,译时分配,程序结束时释放。 自动管理,无需手动作。
文字常量区 存储常量字符串,译时分配,程序结束时释放。 自动管理,无需手动作。

以下是一个使用malloc和free的示例代码:


 include <stdio.h> include <stdlib.h>
int main() { int array = (int)malloc(5 sizeof(int)); if (array == NULL) { fprintf(stderr, "Memory allocation failed\n"); return 1; }
// 使用分配的内存 for (int i = 0; i < 5; i++) { array[i] = i 10; }
// 印数组 for (int i = 0; i < 5; i++) { printf("%d ", array[i]); } printf("\n");
// 释放分配的内存 free(array);
return 0; }

返回顶部