0
点赞
收藏
分享

微信扫一扫

• * 比较重要 四区:堆区


  • * 比较重要 四区:
  • ①  栈区(局部变量,形参)
  • 栈区注意事项————不要返回局部变量的地址
  • 栈区的数据由编译器开辟和释放
  • 例子:
  • int a=10;//局部变量
  • return &a;//返回局部变量的地址
  • 第一次可以通过地址找到a的值
  • 但第二次找不到a的地址以及a的值
  • ②堆区:
  • 由程序员分配,若程序员不释放,程序结束时有操作系统释放
  • C++中主要利用new在堆区开辟内存

  • 在堆区开辟数据
  • #include<iostream>
  • using namespace std;
  • int *func()
  • {
  • 利用new关键字开辟堆区
  • 指针本质上也是局部变量
  • int *p=new  int(10);//在堆区开辟10个int字节大小的空间
  • return p;
  • }
  • int main()
  • {
  • int*p=func();
  • cout<<*p<<endl;
  • system("pause");
  • return0;
  • }
  • 2.关于new操作符
  • 堆区开辟的数据,由程序员手动开辟,手动释放;释放是利用操作符delete
  • new的基本语法;
  • 在堆区利用new开辟数组
  • 例子:

  • #include<iostream>
  • using namespace std;
  • int *fun()
  • {

  • int *p=new int(10);
  • return p;  
  • }
  • void testi()
  • {
  • int *p=func();
  • cout <<*P<<endl;
  • //利用delete释放内存空间
  • delete  p;
  • }
  • void test()
  • {
  • int *p=new int[10];//10代表数组有十个元素;
  • for(int i=0;i<10;i++)
  • {
  • cout<<p[i]<<endl;
  • }
  • 释放数组空间
  • delete[]p;//释放数组时,记得加[];
  • }
  • int main()
  • {
  • test1();

  • system("pause");
  • return;
  • }*/
举报

相关推荐

0 条评论