我有以下代码:
typedef struct{
char *name;
int age;
} person_t;
person_t
read_person(void);
int main(){
person_t Peter = read_person();
printf("%s %d\n", Peter.name, Peter.age);
}
person_t
read_person(void) {
person_t a;
a.name = "Peter";
a.age = 18;
return a;
}
因此,在函数 read_person 中,返回了一个结构 person_t。我想知道当函数完成时数组 a.name 是否会被释放,因为“a”是一个局部变量。
原来程序运行时打印了下面一行
Peter 18
这意味着 a.name 没有被释放。有人可以对此提供解释吗?