new操作符
说明
C++中利用new操作符在堆区开辟数据
堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete
语法:new 数据类型
作用:利用new创建的数据,会返回该数据对应的类型的指针
示例代码(new基本语法)
# include <iostream>
using namespace std;
int* func()
{
//在堆区中创建整形数据
//new返回是 该数据类型的指针
int* p = new int(10);
return p;
}
void test01()
{
int* p = func();
cout << *p << endl; //堆区的数据,由程序员管理开辟,程序员管理释放
delete p; //如果想释放堆区的数据,利用关键词delete
cout << *p << endl; //数据已经被释放,再次访问就是非法操作
}
int main()
{
test01();
system("pause");
return 0;
}
示例代码(开辟数组)
# include <iostream>
using namespace std;
int* func()
{
//在堆区中创建整形数据
//new返回是 该数据类型的指针
int* p = new int(10);
return p;
}
void test01()
{
int* p = func();
cout << *p << endl; //堆区的数据,由程序员管理开辟,程序员管理释放
delete p; //如果想释放堆区的数据,利用关键词delete
cout << *p << endl; //数据已经被释放,再次访问就是非法操作
}
//在堆区利用new开辟数组
void test02()
{
//创建10整型数据的数组,在堆区
int* arr = new int[10]; //10代表数组有10个元素
for (int i = 0; i < 10; i++)
{
arr[i] = i + 100; //给10个元素赋值 100~109
}
for (int i = 0; i < 10; i++)
{
cout << arr[i] << endl;
}
delete[] arr; //释放堆区数组,释放数组的时候,要加[]才可以
}
int main()
{
//test01();
test02();
system("pause");
return 0;
}
0 条评论