给你几种主要的不同方法:
A. 使用静态变量
const char * func (void) {
static char x[1000];
处理数据
return x;
}
B. 内存分配的
如果是返回
字符串建议使用strdup。
const char * func (void) {
处理数据
return strdup(str);
}
注意,VC6等一些早期
编译器,对标准库支持的有问题,可能需要在strdup前面加一个到两个
下划线。
方法的缺陷:strdup的需要free,静态的不能用于
多线程。
return strdup(str);
效果上相当于:
char *x = malloc(strlen(str)+1);
strcpy(x, str);
return x;
但是,实际上会快一些,parser中用的比较普遍。
本回答被提问者和网友采纳