内存分配(全)
malloc与free是C/C++的 标准库函数 ,new/delete是C++的 关键字 。它们都可用于申请动态内存和释放内存。 使用动态内存很明显的好处就是:不需要预先分配存储空间且分配的空间可以根据程序的需要扩大或缩小,这样可以有效的使用内存空间。 对于非内部数据类型的对象而言,光用malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象的消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。 1、malloc和free #include < malloc.h > #include <alloc.h> #include < stdlib.h > 三者其中一个就行。 void *malloc(size_t size);//返回指向内存块首地址的指针,指针类型是void*,所以后续需要转换 void free(void *pointer); 使用示例: int *p=(int *)malloc(100); //指向整型的指针p指向一个大小为100字节的内存的地址, int *p=(int *)malloc(25*sizeof(int)); //指向整型的指针p指向一个25个int整型空间的地址 /*如果分配失败了,会返回一个空指针