new和malloc的区别
类型安全:
new是C++运算符,为对象分配内存,调用构造函数
malloc是C语言库函数,只分配指定大小的内存块,不调用构造函数
返回类型:
new返回具体类型的指针,不需要进行类型转换。
malloc返回void*,需要进行类型转换。
内存分配失败:
new抛出异常,std::bad_alloc
malloc 返回NULL
释放方式:
new搭配delete
malloc搭配free
define和typedef的区别
define:
简单的字符串替换,无类型检查
预处理时期
防止头文件重复引用
不分配内存
typedef:
有相应的数据类型,需要进行类型判断
编译运行时起作用
在静态存储区中分配内存,在程序运行过程中内存只有一个拷贝