可能重复:
可以在其范围之外访问局部变量的内存吗?
所以这是一个简单的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 是一个临时变量;函数如何成功返回?