(一)动态内存申请
在c/c++语言中,编写程序有时不能确定数组应该定义为多大,因此这时在程序运行时要根据需要从系统中动态多地获得内存空间。所谓动态内存分配,就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。
① 断言
#include <assert.h>assert(p); //p等于NULL触发断点,中断程序 断言
② malloc 动态内存,不做初始化
#include <malloc.h>
void* malloc(size_t _Size); //size:申请内存的总字节数
③ calloc 动态内存申请,会初始化为0
void* calloc( size_t _Count,size_t _Size); //有几个数据:count,每个数据占用的字节数:size
④ realloc 内存重新申请,保留原数据
void* realloc(void* _Block,size_t _Size); //原指针,重新申请的内存大小,必须要比原来的内存还要大
⑤ 释放内存函数
void free(void* _Block);
__cdecl 调用准则,限定参数传参顺序(入栈顺序)--->了解一下
_out_ 传出参数
_In_ 参数类型修饰 传入
size_t unsigned int
void* 使用前必须强制类型转换
相关代码:
#include <stdio.h>
#include <malloc.h>
#include <assert.h>
void text()
{
//动态内存的内存都是指针。
//动态内存申请:就是堆区
//一段内存的申请
int* p = (int*)malloc(sizeof(int)*3); //(int*):将申请的 进行类型强转成(int*); *3:代