一个比较笨拙的办法是把st中的a和b定义为char a[len], b[len],无需更改其它;
但是,以效率和速度著称的c语言,操作struct时,一般都结合指针来操作。那么第二种比较优雅也是正确的处理方式是st被定义为指针,就是*st,函数大致修改如下
st struct_test_func(char *str){
st tt = malloc(sizeof(xxx));
tt->a = malloc(strlen(xxx) + 1);
tt->b = malloc(strlen(xxx) + 1);
strcpy(tt->a, xxx);
strcpy(tt->b, xxx);
return tt
}
需要注意的是,当这个结构不在使用时,要先释放a和b,再释放tt,稍显麻烦,但你上面的回帖说程序是跑在嵌入式平台的,那么显然你必须要用第二种方法。
【 在 steven2012 的大作中提到: 】
: 嗯,看来是这样,我被python祸害的不浅。尝试吧这两个变量写成static,但是结果一样,求问怎么写这个返回值,谢谢
: :
--
FROM 39.144.55.*