1. new、delete和malloc、free的区别
malloc和free,称作C的库函数;new和delete,称作运算符。
new不仅可以做内存开辟,还可以做内存初始化操作。
malloc开辟内存失败,是通过返回值和nullptr做比较;而new开辟内存失败,是通过抛出bad_alloc类型的异常来判断的。
int *p = (int*)malloc(sizeof(int));
if (p == nullptr) return -1;
*p = 20;
free(p);
int *q = (int*)m