#include <iostream>
int main(int argc, char const *argv[])
{
int* array = new int[10];
//给第一个元素赋值
*array = 1;
//打印第一个元素的地址
std::cout<<array<<'\n';
//输出0x000056513bb50c20
//指针增加1
array += 1;
//打印第二个元素的地址
std::cout<<array<<'\n';
//输出0x000056513bb50c24
//释放内存
array -= 1;
delete[] array;
//出现bug:
//Error in `./a.out': //free():invalidpointer:0x000056513bb50c24 ***
//delete[]调用free函数。
//free函数的某个参数则是数组第一个元素的指针
//若不把array减1,得到无效指针0x000056513bb50c24
//那么数组第一个元素对应的内存没有被释放。
//所以数组在释放内存时,一定要记得把指针指向第一个元素。还有,没事别闲着蛋疼去修改指针指向,除非万不得已。
return 0;
}