C++ 堆区内存分配

末蓝、 2023-02-22 13:50 96阅读 0赞
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. int* func(int b) { //形参也放在栈区
  5. int * p=new int(10);
  6. return p;
  7. }
  8. //2、在堆区利用new开辟数组
  9. void test02() {//创建10整型数据的数组,在堆区
  10. int * arr = new int[10]; //10代表数组有10个元素
  11. for (int i = 0; i < 10; i++) {
  12. arr[i] = i + 100; //给10个元素赋值 100~ 109
  13. }
  14. for (int i = 0; i < 10; i++) {
  15. cout << arr[i] <<endl;
  16. }
  17. }
  18. int main() {
  19. int*p = func(1);
  20. cout << *p << endl;
  21. cout << *p << endl;
  22. cout << *p << endl;
  23. //堆区的数据由程序员管理开辟,程序员管理释放
  24. //如果想释放堆区的数据,利用关键字delete
  25. delete p;
  26. cout << *p << endl;
  27. system("pause");
  28. }

发表评论

表情:
评论列表 (有 0 条评论,96人围观)

还没有评论,来说两句吧...

相关阅读

    相关 浅析栈分配的区别

    一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内

    相关 C++栈、

    1、栈区(stack)       由编译器自动分配释放 ,存放函数参数值,局部变量值等。其操作方式类似于数据结构中栈。 2、堆区(heap)      一

    相关 分配区别

      一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看