我很难理解这三个之间的区别:
const char * f() {
return "this is a test";
}
const char * g() {
const char * str = "test again";
return str;
}
const double * h() {
const double a = 2.718;
return &a;
}
我收到了h(), as的警告warning: address of local variable ‘a’ returned。这是有道理的,但我不明白为什么编译器(gcc -Wall)可以使用f()andg()函数。
- 那里没有局部变量吗?
- 指针何时以及如何被释放
f()或被g()释放?