本文已参与「新人创作礼」活动,一起开启掘金创作之路。
new和malloc的区别
- new/delete是C++的关键字,而malloc/free是库函数,new/delete可以进行重载,而malloc/free不行。
- new时只需要指定分配对象的类型,而不需要指定分配的空间大小,返回的也是该类型的指针;而malloc时只需要指定空间的大小,无需指定数据类型,返回的是void*泛型指针。
- new失败时直接抛出异常,而malloc则是返回NULL。
- new时需要先调用malloc,然后调用所分配对象的构造函数进行构造。
- new操作符从自由存储区上为对象动态分配内存,malloc函数是从堆上动态分配内存。自由存储区是C++基于new操作符的抽象概念,凡是通过new操作符进行内存申请的,该内存就叫自由存储区。而自由存储区的位置取决于operator new的实现细节。自由存储区不仅可以是堆区,也可以是静态存储区,取决于对new进行重载时在哪里为对象分配内存。
TCP与UDP的区别
- TCP是面向连接的,UDP是面向无连接的。
- TCP是可靠的,而UDP是不可靠的(尽最大努力交付)。
- UDP结构相较为简单(TCP的首部长度有40个字节,而UDP的首部长度只有8个字节)。
- TCP是流模式,UDP是数据报模式。
- 每一条TCP连接只能点到点的;UDP支持一对一、一对多、多对一、多对多的交互通信。
版本声明:本文为CSDN博主[ufgnix0802]的原创文章。
原文链接:blog.csdn.net/qq135595696…