C语言基础 -57 动态内存分配

    技术2022-09-01  91

    MALLOC(3) Linux Programmer's Manual MALLOC(3) NAME //成功返回指针,失败返回空指针 malloc, free, calloc, realloc - allocate and free dynamic memory SYNOPSIS #include <stdlib.h> void *malloc(size_t size); //在堆上找连续个字节空间,将起始地址返回。 // void *是任意类型的指针。 void free(void *ptr); void *calloc(size_t nmemb, size_t size); //连续申请nmemb块size大小的空间。 void *realloc(void *ptr, size_t size); //重新分配动态内存空间 //*ptr必须是*calloc或*malloc这两个函数返回的指针。从 *ptr开始申请size字节大小的空间。 void *reallocarray(void *ptr, size_t nmemb, size_t size);

    原则:谁申请谁释放。防止内存泄漏。最好在同一函数中实现,如果不能,要保证同一模块中谁申请谁释放

    当进程结束时,所申请的内存就会随着释放。

    book@100ask:~/C_coding/CH02$ cat malloc.c #include <stdio.h> #include <stdlib.h> int main() { int *p = NULL; p = malloc(sizeof(int)); if(p == NULL) printf("malloc() error\n"); *p = 10; printf("
    Processed: 0.010, SQL: 9