cha * 释放的有关问题

cha * 释放的问题
1
#include<stdio.h>
int main()
{
char *dest="china";
free(dest);
}

我的理解是 char *dest 是在局部定义在栈上的指针变量,free会出错,和我想的一样。但是下面的确没问题,请高手帮忙解答一下

2
#include<stdio.h>
int main()
{
char *dest=Conf::m_get_value_by_key(conf_path, "case_id");
free(dest);
}
这个就没问题,是什么原因呢? Conf::m_get_value_by_key 是一个函数 返回一个字符串char*; free(dest)就没有问题。


------解决方案--------------------
1.不是局部堆栈上,应该是文字常量区

2.和返回值无关,那个函数里面应该有malloc操作
------解决方案--------------------
楼猪,标题写错了
cha * 释放的有关问题