做淘宝要网站/广州最新发布最新
/**C++ 动态内存C++ 程序中的内存可分为两个部分1: 栈 :在函数内部声明的所有变量都将占用栈内存2:堆:这个是程序中未使用的内存,在程序运行时可用于动态分配内存3:在C++中您可以使用特殊的运算符为给定的类型的变量在运行时,分配堆内的内存,它会返回分配的地址空间,这种运算符就是 new,如果不需要动态分配的内存空间,可以使用 delete运算符来删除之前通过new运算符申请的内存空间*/std::cout << std::endl;// 1:给数组动态分配内存// int *foo; foo = new int[5]; : 系统为 int类型的五个元素动态分配空间,并返回指向序列的第一个元素的指针,该指针被分配给foo (指针)。// 因此,foo现在指向一个有效内存块,这个内存块包含五个int类型元素空间int *p1 = new int; // 定义一个int类型指针,int类型占四字节,取值范围:-2147483648 - 2147483647*p1 = 5; // 给:指针保存的内存地址 对于的值 写入一个5*p1 = *p1 + 10000; // 修改刚刚的值cout << "输出指针p自身的内存地址:" << p1 <<endl;cout << "输出指针P保存内存地址对于的值:" << *p1 << endl;// 删除之前指针申请的内存delete p1;// 重新申请新的内存std::cout << std::endl;std::cout << std::endl;std::cout << std::endl;p1 = new int[10];for (int i = 0; i < 10; i++){p1[i] = i + 1;cout << "输出p1指针保存的内存地址 对于的值" << p1[i] << endl;cout << "输出p1指针保存的内存地址" << &p1[i] << endl;std::cout << std::endl;}std::cout << std::endl;cout << "输出指针p1自身的内存地址:" << &p1 << endl;cout << "输出指针p1保存的内存地址:" << p1 << endl;// 释放指针delete p1;