新浪博客

c++函数不能返回局部变量的引用

2022-05-26 20:27阅读:
不能返回局部变量的引用!!
1. 函数返回值签名里面有&
vector& returnVec() {
vector v = {1, 2, 3}; // [Warning] reference to local variable 'v' returned [-Wreturn-local-addr]
return v;
}
2. 基本类型也一样
int& add(int a, int b) {
int c = a + b;
return c;
}
3. 返回指针类型,局部变量的&不可以, new的是可以的。
int* returnArr() { // warning!!!,
int a[2] = {1, 2}; // local-addr
int* n = new int[2];// ok
return a; // local-addr
}

我的更多文章

下载客户端阅读体验更佳

APP专享