现在的位置: 首页 > 综合 > 正文

returning address of local variable or temporary

2014年03月24日 ⁄ 综合 ⁄ 共 404字 ⁄ 字号 评论关闭

static char * ToString(int DaValue){
char HaChar[32];
sprintf_s(HaChar, "%d", DaValue);
return HaChar;
}

VS2005出现警告:returning address of local variable or temporary

虽然说不安全,但是可以执行,
但是如何解决这个安全问题?
可能会多个线程执行ToString,或者执行多次,使用静态HaChar肯定不适合
static void ToString(int DaValue, char DaChar[]){
sprintf_s(DaChar, "%d", DaValue);
}
这样的代码感觉不太适合理解,如何?

解决方法如下:

char * ToString(int DaValue){

static
char HaChar[32
];

sprintf_s(HaChar,
"%d", DaValue);

return HaChar;

}

【上篇】
【下篇】

抱歉!评论已关闭.