1、 null
2、 在C语言中必须使用malloc函数分配内存,因为该语言不支持new操作符;若使用C++编译器,则可采用new进行内存分配。
3、 程序如下所示:
4、 开辟内存后可像数组一样使用,但使用完毕必须用free释放,例如free(pNumber);而使用new则更为便捷。
5、 代码:
6、 用完后请务必及时删除处理
7、 删除指针pNumber所指向的内存空间

8、 C++中new的三种用法:动态分配、定位new、重载new操作符。
9、 一个是new表达式,另一个是new操作符,二者英文名称相近却功能不同,容易混淆,建议记住其中文叫法。new表达式使用频率最高,最为常见,比如在动态分配对象时所用的new,即属于new表达式,它不仅分配内存,还自动调用构造函数完成初始化操作。
10、 上述new表达式既分配内存又初始化对象。
11、 new操作符在功能上类似于C语言的malloc,主要用于动态分配内存。例如:void* buffer = operator new(sizeof(string)); 它仅负责内存的申请,不进行对象的构造。
12、 此处多出一个operator,属于new的第二种常见用法。
系统设置:密码修改 增加用户(权限) [打印机设置 票样打印设置 这2块用不着实现系统界面上 放着就好了]基础设置:基础参数设置(买票设置/订票设置/退票设置)(比如多少时间之前不能买票订票) 车票设置(标准票/儿童票/。。。增删改) 车辆设置(增删该) 车次设置(增删该) 运营计划设置(调度设置)前台营业:销售车票
13、 第三种用法较为少见,主要用于已有的内存空间中构造对象,比如当你已经拥有一块未使用的内存时。
14、 此时buffer指向你可用的空闲内存区域。
15、 在buffer指向的内存区域中,使用定位new表达式创建了一个string对象,并以abc作为初始值,即显式调用构造函数在指定地址初始化对象,实现内存的原地构造,避免额外的内存分配操作。
16、 placement new 属于 new 表达式的一种特殊形式,相较于普通 new,它额外接收一个参数,用于指定对象构造的位置,其操作过程和返回结果也有所区别。
17、 因此,上述new的第一种用法可拆解为后两种方式的组合。
18、 与new相对应的delete不具备三种语法形式,仅包含两种:delete operator(即delete表达式)和operator delete(即delete操作符)。其中,delete表达式负责调用对象的析构函数并释放其所占用的内存,与new表达式配对使用;而operator delete则仅执行内存释放功能,其作用类似于C语言中的free函数。例如,在动态内存管理中,delete表达式先调用析构函数再释放内存,而operator delete只完成释放操作,不涉及对象的销毁过程。
19、 ...
20、 执行delete操作,先调用析构函数,再释放内存空间。
21、 ...
22、 释放缓冲区内存
23、 placement new用于在指定内存位置调用构造函数初始化对象,与其对应的是显式调用析构函数来销毁对象,尽管这种机制并不称为placement delete,但作用相似,都是针对已分配内存的对象进行构造或析构操作。
24、 ...
13万字C语言保姆级教程(深入):立即使用
在学习笔记中,你将探索c语言的核心概念和高级技巧!










