堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete
利用new创建的数据,会返回该数据对应的类型的指针
#include<iostream>
using namespace std;
/*堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete*/
/*利用new创建的数据,会返回该数据对应的类型的指针*/
//1.new的基本语法
int* func()
{
//在堆区创建整型数据
int * p = new int(10);//new返回的是该数据类型的指针
return p;
}
void test01()
{
int* p = func();
cout << *p << endl;
cout << *p << endl;
}
//2.在堆区利用new开辟数组
int main()
{
test01();
system("pause");
return 0;
}
运行结果
堆区的数据由程序员管理开辟,释放;如果想释放堆区的数据用关键字delete
将关键字delete加入代码并运行
#include<iostream>
using namespace std;
/*堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete*/
/*利用new创建的数据,会返回该数据对应的类型的指针*/
//1.new的基本语法
int* func()
{
//在堆区创建整型数据
int * p = new int(10);//new返回的是该数据类型的指针
return p;
}
void test01()
{
int* p = func();
cout << *p << endl;
/*堆区的数据由程序员管理开辟,释放;如果想释放堆区的数据用关键字delete*/
delete p;
cout << *p << endl;
}
//2.在堆区利用new开辟数组
int main()
{
test01();
system("pause");
return 0;
}
结果
在早期的vs中,使用delet关键字后在非法访问数据会报错