该函数将返回

来源:互联网 发布:手机数据开关自动打开 编辑:程序博客网 时间:2024/04/29 18:02

你可以在这里看到,N值超出范围后,它的地址返回给调用者。最终的结果是,对方最终非分配的内存地址,它会引起很多问题,如果使用。这是最常见的编程错误,新的程序员。许多新的编译器会给出一个警告不是错误)如果程序员试图返回地址-然而局部变量有相当多的方式来欺骗编译器里让你做违法的事情而不产生警告所以负担是程序员来确保他们返回地址一个有效的变量在函数返回

返回地址通常是用来返回给调用者新分配的内存

12345678910111213int* AllocateArray(int nSize){    return new int[nSize];} int main(){    int *pnArray = AllocateArray(25);    // do stuff with pnArray     delete[] pnArray;    return 0;}

结论

大多数时候,返回值将满足你的需求。它也返回到呼叫者信息最灵活和最安全的方法。然而,通过引用或地址返回也可以是有用的,尤其是使用动态分配的类或结构的时候。当使用引用返回或地址请确保你没有返回一个引用地址一个变量,将超出范围时,该函数将返回


0 0
原创粉丝点击