当函数的返回值为指针时,我们必须确保所返回的指针指向的内存空间是有效的。
#include <iostream>
#include <cstring>
using namespace std;
char* fun(int mod){
switch(mod){
case 0:{
char a[] = "0123456";
char *pa = a;
pa[0]++;
cout<<&pa<<"->"<<(void *)pa<<":"<<pa<<endl;
return pa;
}
case 1:{
static char a[] = "1234567";
a[0]++;
cout<<&a<<"->"<<(void *)a<<":"<<a<<endl;
return a;
}
case 2:{
char *a = "2345678";
// a[0]++; // 错误
cout<<&a<<"->"<<(void *)a<<