malloc、calloc、realloc、alloca
1.malloc:申请指定字节数的内存。申请到的内存中的初始值不确定。
2.calloc:为指定长度的对象,分配能容纳其指定个数的内存。申请到的内存的按bit初始化为 0。
3.realloc:更改以前分配的内存长度(增加或减少)。当增加长度时,可能需将以前分配区的内容移到另一个足够大的区域,而新增区域内的初始值则不确定。
4.alloca:在栈上申请内存。程序在出栈的时候,会自动释放内存。但是需要注意的是,alloca 不具可移植性, 而且在没有传统堆栈的机器上很难实现。alloca 不宜使用在必须广泛移植的程序中。C99 中支持变长数组 (VLA),可以用来替代 alloca。
malloc、free
用于分配、释放内存
malloc、free 使用
申请内存,确认是否申请成功
char str = (char) malloc(100);
assert(str != nullptr);
释放内存后指针置空
free§;
p = nullptr;
new、delete
1.new / new[]:完成两件事,先底层调用 malloc 分配了内存,然后调用构造函数&