用new和delete运算符进行动态分配和撤销存储空间

时间:2023-03-09 00:37:12
用new和delete运算符进行动态分配和撤销存储空间

測试描写叙述:暂时开辟一个存储空间以存放一个结构体数据

#include <iostream>
#include <string>
using namespace std;
struct Student
{
string name;
int age;
char sex;
};
int main()
{
Student *p; //定义指向结构体类型Student的数据的指针变量p
p=new Student; //用new运算符开辟一个存放Student型数据的空间。把地址赋给p
p->name="jrz1900";
p->age=20;
p->sex='M';
cout<<p->name<<endl<<p->age<<endl<<p->sex<<endl;
delete p;
return 0;
}

结果显示:

用new和delete运算符进行动态分配和撤销存储空间

new运算符使用的一般格式为:

new  类型 [初值]

注意:用new运算符分配数组空间时不能指定初值。

假设因为内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL,用户能够依据指针的值推断分配空间是否成功。

delete 运算符使用的一般格式为:

delete  指针变量  (对变量)

delete  [ ] 指针变量  (对指针数组)

delete [ ] pt  (对数组空间的操作)

C语言中利用库函数malloc和free来分配和撤销内存空间的。