计算机C语言必学知识(动态内存分配)详解以及示例代码

您所在的位置:网站首页 学c语言的专业知识 计算机C语言必学知识(动态内存分配)详解以及示例代码

计算机C语言必学知识(动态内存分配)详解以及示例代码

#计算机C语言必学知识(动态内存分配)详解以及示例代码| 来源: 网络整理| 查看: 265

在C语言中,动态内存分配是一个非常重要的概念,它允许程序在运行时分配和释放内存。本文将介绍C语言中的动态内存分配,包括如何使用malloc()、calloc()和realloc()函数来分配和释放内存,并提供示例代码。

1、malloc()函数

malloc()函数允许程序在运行时动态地分配内存。该函数接受一个参数,即要分配的内存的大小(以字节为单位),并返回一个指向新分配内存的指针。如果分配失败,则返回NULL。示例代码:

#include #include int main() { int *p; int size = 5; p = (int*)malloc(size * sizeof(int)); if (p == NULL) { printf("Failed to allocate memory.\n"); return 1; } printf("Memory allocated successfully.\n"); free(p); return 0; }

在示例代码中,使用malloc()函数分配5个int类型的内存,并将其存储在指针p中。如果分配失败,则打印错误消息并退出程序。完成操作后,使用free()函数释放内存。

2、calloc()函数

calloc()函数也允许程序在运行时动态地分配内存。该函数接受两个参数:要分配的内存块的数量和每个块的大小(以字节为单位)。它返回一个指向新分配内存的指针。如果分配失败,则返回NULL。示例代码:

#include #include int main() { int *p; int size = 5; p = (int*)calloc(size, sizeof(int)); if (p == NULL) { printf("Failed to allocate memory.\n"); return 1; } printf("Memory allocated successfully.\n"); free(p); return 0; }

在示例代码中,使用calloc()函数分配5个int类型的内存,并将其存储在指针p中。如果分配失败,则打印错误消息并退出程序。完成操作后,使用free()函数释放内存。

3、realloc()函数

realloc()函数允许程序重新调整先前分配的内存块的大小。该函数接受两个参数:先前分配的内存块的指针和新的内存块的大小。它返回一个指向重新分配内存的指针。如果分配失败,则返回NULL。示例代码:

#include #include int main() { int *p; int size1 = 5; int size2 = 10; p = (int*)malloc(size1 * sizeof(int)); if (p == NULL) { printf("Failed to allocate memory.\n"); return 1; } printf("Memory allocated successfully.\n"); p = (int*)realloc(p, size2 * sizeof(int)); if (p == NULL) { printf("Failed to reallocate memory.\n"); return 1; } printf("Memory reallocated successfully.\n"); free(p); return 0; }

在示例代码中,使用malloc()函数分配5个int类型的内存,并将其存储在指针p中。如果分配失败,则打印错误消息并退出程序。然后,使用realloc()函数将分配的内存块的大小更改为10个int类型的内存。如果重新分配失败,则打印错误消息并退出程序。完成操作后,使用free()函数释放内存。

总结:

动态内存分配是C语言中的一个重要概念。要使用动态内存分配,需要使用malloc()、calloc()和realloc()函数分配和释放内存。完成操作后,应使用free()函数释放内存。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3