/* * 示例16:动态内存分配(Dynamic Memory) * 功能:学习使用 malloc 和 free 动态分配和释放内存 */ #include #include // malloc 和 free 函数所在的头文件 int main() { // 动态分配内存:在程序运行时申请内存 // malloc 参数是需要的字节数 // sizeof(int) 返回 int 类型占用的字节数(通常是 4) int *ptr = (int *)malloc(sizeof(int)); // 检查内存分配是否成功 if (ptr == NULL) { printf("内存分配失败!\n"); return 1; } // 使用分配的内存 *ptr = 100; printf("动态分配的内存中存储的值:%d\n", *ptr); // 释放内存 free(ptr); printf("内存已释放\n"); // 动态分配数组 printf("\n=== 动态分配数组 ===\n"); int size; printf("请输入数组大小:"); scanf("%d", &size); // 分配一个包含 size 个整数的数组 int *arr = (int *)malloc(size * sizeof(int)); if (arr == NULL) { printf("内存分配失败!\n"); return 1; } // 给数组赋值并输出 for (int i = 0; i < size; i++) { arr[i] = i * 10; printf("arr[%d] = %d\n", i, arr[i]); } // 释放数组内存 free(arr); printf("数组内存已释放\n"); return 0; }