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