如果* get_ii()返回堆内存,而不是堆栈内存,这个问题是否会被消除?指针电阻
01 int *get_ii()
02 {
03 int ii; // Local stack variable
04 ii = 2;
05 return ⅈ
06 }
07 main()
08 {
09 int *ii;
10 ii = get_ii(); // After this call the stack is given up by the routine
11 // get_ii() and its values are no longer safe.
12
13 ... Do stuff
14 .. ii may be corrupt by this point.
15 }
来源 - http://www.yolinux.com/TUTORIALS/C++MemoryCorruptionAndMemoryLeaks.html
感谢
与返回引用相同的问题,自动对象的生命周期以范围结束。在大多数情况下,只需返回一个值。(Do * not * pre-optimize and say“哦,但是我会复制一个大对象,所以我不应该那样做!我会通过引用作为参数或返回一个指向动态分配值的指针“但是不要。) – GManNickG 2010-08-10 17:51:17