所以,如果我想声明一个字符数组,我可以这样
char a[2];
char * a ;
char * a = new char[2];
忽略第一个声明,其他两个使用指针。据我所知,第三个声明存储在堆中,并使用 delete 运算符释放。第二个声明是否也将数组保存在堆中?这是否意味着如果某些内容存储在堆中并且未释放,则可以在文件中的任何位置使用,例如具有文件链接的变量?我在一个函数中尝试了第三个和第二个声明,然后在另一个函数中使用了该变量,但它不起作用,为什么?第二个和第三个声明之间还有其他区别吗?