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;
}
本文探讨了在VS2005中返回局部变量地址的问题,并提出了一种解决方案。通过修改函数实现方式,避免了返回局部变量地址的安全隐患。
823

被折叠的 条评论
为什么被折叠?



