可能重复:
可以在其范围之外访问局部变量的内存吗?
所以这是一个简单的c++函数。它的作用是将一个字符数组作为其参数和一个整数 n,然后创建一个新的字符数组,其中只有数组的 n 个元素。
char * cutString(char * ch , int n){
  char * p = new char[n];
  int i ;
  for(i = 0 ; i < n ; i++)
         p[i] = ch[i];
  while(i <= n ){
    p[i++] = '\0';
  }
  return p ;
}
这工作得很好,但如果我改变char * p = new char[n];我会char p[n];看到有趣的角色。怎么了?前者有什么区别?另外,p 是一个临时变量;函数如何成功返回?