new运算符(1)
C++利用new操作符在堆区开辟数据
堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete
语法:new 数据类型
利用new创建的数据,会返回该数据对应数据类型的指针
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 //1.new的基本语法 6 int * fun(void) 7 { 8 //在堆区创建一个整型的数据 9 //new返回的是该数据类型的指针 10 int *p = new int(10); 11 return p; 12 } 13 14 void test_01(void) 15 { 16 int *p = fun(); 17 cout << *p << endl; 18 cout << *p << endl; 19 cout << *p << endl; 20 //堆区的数据,由程序员开辟,也由程序员释放 21 //如果想释放,在需要释放的地方使用关键字delete 22 delete p; 23 24 //cout << *p << endl;//内存已经释放,再次访问就是非法操作 25 } 26 27 void test_02(void) 28 { 29 //创建10个整型数据的数组 30 int *p = new int[10]; 31 32 for (int i = 0; i < 10; i++) 33 { 34 p[i] = i + 100; 35 } 36 37 for (int i = 0; i < 10; i++) 38 { 39 cout<<p[i]<<endl;; 40 } 41 //释放堆区数组 42 //释放数组的时候,要加[] 43 delete []p; 44 } 45 46 int main(void) 47 { 48 //test_01(); 49 test_02(); 50 51 system("pause"); 52 return 0; 53 }