你可以在这里看到,N值超出范围后,它的地址返回给调用者。最终的结果是,对方最终非分配的内存地址,它会引起很多问题,如果使用。这是最常见的编程错误,新的程序员。许多新的编译器会给出一个警告(不是错误)如果程序员试图返回的地址-然而局部变量,有相当多的方式来欺骗编译器里让你做违法的事情而不产生警告,所以负担是程序员来确保他们返回地址是一个有效的变量在函数返回。
返回的地址通常是用来返回给调用者新分配的内存:
1
2
3
4
5
6
7
8
9
10
11
12
13
int* AllocateArray(int nSize)
{
return new int[nSize];
}
int main()
{
int *pnArray = AllocateArray(25);
// do stuff with pnArray
delete[] pnArray;
return 0;
}结论
大多数时候,返回值将满足你的需求。它也返回到呼叫者信息最灵活和最安全的方法。然而,通过引用或地址返回也可以是有用的,尤其是使用动态分配的类或结构的时候。当使用引用返回或地址,请确保你没有返回一个引用,或地址,一个变量,将超出范围时,该函数将返回!
本文深入探讨了在C++编程中,当函数返回分配的内存地址时所涉及的重要概念。重点讨论了局部变量如何导致问题,以及如何避免这些问题。同时,介绍了返回地址的常见用途,包括分配新内存并安全地释放它。

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



