相关疑难解决方法(0)

C++返回对局部变量的引用

如果必须返回i,以下代码(func1())是否正确?我记得在某处读到返回对局部变量的引用时存在问题.它与func2()有什么不同?

int& func1()
{
    int i;
    i = 1;
    return i;
}

int* func2()
{
    int* p;
    p = new int;
    *p = 1;
    return p;
}
Run Code Online (Sandbox Code Playgroud)

c++

102
推荐指数
2
解决办法
10万
查看次数

在函数返回中将数组转换为指针

我在C++中遇到了关于指针的问题.代码是:

int * initArray() {
    int a [2];

    a[0] = 1;
    a[1] = 2;
    return a;
}


int main () {
    int * b = initArray();

    cout << b << "---" << *(b) << endl;
    cout << b + 1<< "---" << *(b + 1) << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出是

0021FC20---1
0021FC24---1431629120
Run Code Online (Sandbox Code Playgroud)

你可以看到值是错误的.

当我尝试将init数组代码放入main函数时,它正确运行.

你能告诉我的代码有什么问题吗?

c++ pointers return function

0
推荐指数
1
解决办法
270
查看次数

标签 统计

c++ ×2

function ×1

pointers ×1

return ×1