C语言中的动态内存分配函数有哪些?

我想了解一下C语言中的动态内存分配函数有哪些可以使用。我需要在程序执行期间动态地分配内存,但我不知道哪些函数可以实现这个功能。我希望有经验的程序员或专家可以向我介绍一些相关函数和它们的用法,同时说明它们的优缺点和适用场景。如果可以提供一些使用时的示例,那就更好了,谢谢!

提问时间:2023-06-06 23:56:36 编辑时间:2023-06-06 23:56:38 提问者: 雨夜迷情
  • 零度星辰
    2

    C语言中的动态内存分配函数有malloc、calloc、realloc以及free。其中,malloc函数用于分配指定大小的内存空间,calloc函数则用于分配指定数量和大小的内存空间,并将分配的内存空间初始化为0。realloc函数用于重新分配已分配内存的大小,而free函数用于释放已分配的内存空间,使其可供其他程序使用。在使用这些函数时需要注意内存泄漏和指针操作的问题,建议在使用完后及时进行释放,避免出现程序异常或崩溃等情况。以下是如何使用这些函数的简单示例:

    malloc示例:

    int* p = (int*)malloc(sizeof(int));
    *p = 123;
    free(p);
    

    calloc示例:

    int* q = (int*)calloc(10, sizeof(int));
    for (int i = 0; i < 10; i++) {
        q[i] = i + 1;
    }
    free(q);
    

    realloc示例:

    int* r = (int*)malloc(10 * sizeof(int));
    r = (int*)realloc(r, 20 * sizeof(int));
    free(r);
    
    回答时间:2023-06-06 23:56:41