自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 C++内存管理方式

int main()//分配一个A类对象大小的空间同时调用构造函数初始化//仅分配一个A类对象大小的空间delete p1;//调用析构函数并回收空间free p2;//直接释放p2指向的空间return 0;在申请自定义类型空间时,new会调用构造函数,delete会调用析构函数,而malloc和free不会。当自定义类型为某种容器时(链表或其他数据结构),若在回收空间时不调用析构函数,会产生内存泄漏的问题。

2024-02-21 22:48:37 351

原创 C++学习笔记

结果是24,可以看出,类中的成员函数并不存在于对象中,而是存放在公共代码区。这是因为每个对象的成员函数的功能都是一样的,相当于公用,如果成员函数存放在对象中的话,一个类创建多个对象时,相同的代码就会保存多次,浪费资源。需要注意的是,如果类中没有显式定义的构造函数的话,编译器会自动生成一个无参的默认构造函数,而自动生成的默认构造函数对内置类型的成员变量不做处理,对自定义类型的成员变量则调用相对应的构造函数。既然类的成员函数是存放于公共代码区的,那在使用的时候,它是怎么区分不同对象的呢?1、函数名与类名相同。

2024-01-28 02:09:30 343

原创 从C过渡到C++

其中:type是引用的类型,name是别名,而var则是被引用的变量(被取别名的变量),正确地使用引用可以提高效率,减少不必要的拷贝等开销。但要注意的是,在作为返回值使用时,若引用的对象在出作用域后被销毁的话,引用很可能会变成类似野指针一样的存在,引发各种随机事件。引用是一个已存在的变量的一个别名,编译器不会为引用变量开辟新的内存空间,引用和引用的变量共用一块内存空间。因为C++的编译器支持函数名修饰,而C的编译器在链接生成符号表阶段直接使用原来的函数名,无法区分同名函数,致使C不支持函数重载。

2024-01-26 01:41:02 307 1

原创 结构体内存对齐原因及机制详解

例如,如果结构体中有两个变量,一个是4字节的int类型、一个是8个字节的double类型,若不存在内存对齐机制的话,CPU一次读取8个字节,这8个字节中,有4个字节是能组成一个完整的int类型成员的,但是另外4个字节并不是完整的,需要CPU进行下一轮读取并对其中的前4个字节进行移位和合并,才能恢复double类型的数据,降低了运行的效率;成员name是char类型数组,以类型为准,char类型数据自身大小是1个字节,因此name的对齐数是1,存放在偏移量为4的内存地址中;如果是直接相加的话,输出就是14。

2023-03-28 17:17:01 162

原创 C语言库函数之字符串函数(strlen、strcpy、strcat、strcmp、strstr)的应用以及模拟实现

C语言库函数之字符串函数(strlen、strcpy、strcat、strcmp、strstr)的应用以及模拟实现

2023-03-19 20:46:06 231

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除