返回局部变量指针的问题
2013-01-16 17:54
295 查看
这两天coding的时候被一个小问题困惑了一下
#define STR “abcd”
static inline const char *GetStr()
{
return STR;
}
同事做code review的时候说这个可能有问题,第一反应想到的是返回局部变量指针的问题
但又感不太对,这个返回的是程序静态区域里常量的指针,应该是ok的。
百度了一下找的问题困惑的原因了,嘿嘿
char *GetStr()
{
// char str[] = STR; --<这种返回才是我开始担心的局部变量指针的返回
char *str = STR; --<返回的是STR的地址,就是上面说的静态区域中的地址
return str;
}
这个也是指针和数组在应用的区别之一吧。
后来跟同事讨论一下他的担忧。
呵呵,他那是担忧如果程序尝试更改这个指针指向的字符串的数据时会引起程序崩溃。
额,这个也是程序健壮性的一种concern吧,保留他的意见。
#define STR “abcd”
static inline const char *GetStr()
{
return STR;
}
同事做code review的时候说这个可能有问题,第一反应想到的是返回局部变量指针的问题
但又感不太对,这个返回的是程序静态区域里常量的指针,应该是ok的。
百度了一下找的问题困惑的原因了,嘿嘿
char *GetStr()
{
// char str[] = STR; --<这种返回才是我开始担心的局部变量指针的返回
char *str = STR; --<返回的是STR的地址,就是上面说的静态区域中的地址
return str;
}
这个也是指针和数组在应用的区别之一吧。
后来跟同事讨论一下他的担忧。
呵呵,他那是担忧如果程序尝试更改这个指针指向的字符串的数据时会引起程序崩溃。
额,这个也是程序健壮性的一种concern吧,保留他的意见。
相关文章推荐
- C++函数返回局部变量指针的问题
- 返回指向局部变量的指针或引用的带来的问题讨论
- 返回指向局部变量的指针或引用的带来的问题讨论
- 返回指向局部变量的指针或引用的带来的问题讨论
- C++函数返回局部变量指针的问题
- 返回指向局部变量的指针或引用的问题
- C/C++函数返回局部变量相关问题
- C/C++ 子函数返回局部变量、指针 和改变指针指向
- 关于返回局部变量的指针或引用
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- 函数返回局部变量的问题
- 返回指向局部变量的指针或引用
- C指针以及为什么不能返回局部指针变量,却可以返回局部变量
- 函数返回局部变量问题
- 返回函数局部变量的指针和引用
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- 函数不能返回局部指针变量
- C语言学习7 :二级指针定义,强制转换,多级指针初步,6级指针构造,错误应用*p=&a,错误应用 二级p2,void型指针的兼容性,malloc函数基本用法,malloc分配空间和堆栈空间的区别,验证malloc函数内存的分配,验证malloc函数的越界,内存泄漏,指针不能返回局部变量地址,内存分配
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- 返回局部变量的问题