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("