cpp notes 3 内存四区

代码区,全局区,堆,栈

栈(stack)由编译器自动分配释放,存放函数的形参,局部变量等。所以,不要进行返回局部变量的地址之类的操作。局部变量会在函数结束时销毁,返回的指针是野指针

利用new操作符在堆区开辟数据。堆区的数据由程序员手动开辟手动释放,释放利用操作符delete。未释放的数据在程序结束后由系统自动释放。

利用new创建的数据,会返回该数据类型对应的指针。

int * func()

{

//在堆区创建整型数据

//new返回是该数据类型的指针

  int *p = new int(10);

  return p;

}

int *p0=func();

cout<<*p0<<endl;

//会输出10

//释放堆区数据

int *p=new int(10);

delete p;

int * arr=new int[10];

for (int i, i<10, i++)

{

      arr[i]=i+100;

//释放堆区数组,释放数组的时候要加[]

delete[] arr;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容