功能是否有可能使用其参数返回指针
Is it possible that a function return a pointer using its parameters ?
我具有动态分配内存并将地址保留在其本地指针中的函数。我想要呼叫者功能中的地址。是的,我可以使用返回来做到这一点。但是可以使用函数的参数做到这一点吗?
#include<bits/stdc++.h>
using namespace std;
void getAddress(int *ptr){
int *temp=(int*)malloc(sizeof(int));
ptr=temp;
cout<<ptr<<endl;
}
int main(){
int *ptr=NULL;
cout<<ptr<<endl;
getAddress(ptr);
cout<<ptr<<endl;
return 0;
}
output :
0
0x6fa010
0
Expected output :
0
0x6fa010
0x6fa010
从样式上讲,如果您在功能主体中分配内存(因为那是C标准库函数的功能(,则最好是 return return 分配的指针。但是可以将其作为参数传递,但是您需要一个额外的间接水平:
void getAddress(int **ptr){
*ptr=temp;
在功能主体中,
getAddress(&ptr);
在呼叫网站上。一种替代方法是通过参考:
通过指针void getAddress(int*& ptr){
可能需要更少的更改,也许以呼叫网站的可读性为代价。
是的,您可以通过通过传递:
来做到这一点void getAddress(int *&ptr){
// ~
int *temp=(int*)malloc(sizeof(int));
ptr=temp;
cout<<ptr<<endl;
}
ot: temp
不是多余的吗?
OT2:不要忘记free
main()
末尾的指针。
相关文章:
- 使用作为参数返回的指针的最佳做法是什么
- 有没有办法根据 lambda 参数返回类型部分专用化我的模板化函数?
- 如何通过函数参数返回指向不规则数组的指针
- void 函数中的指针参数返回不一致的值
- 如何修复用于根据参数返回不同类型的模板类中的错误C2679?
- 是否可以通过引用通过参数返回参考
- 在C++中,如何根据类中的参数返回不同的泛型类型
- 如何根据枚举参数返回其他类型
- GoogleMock,按参数返回和正常返回,消耗数组
- 功能是否有可能使用其参数返回指针
- 推论成员函数参数 /返回类型
- C++ 基于模板参数返回类型的模板函数
- 参考参数返回副本
- 根据模板参数返回有价值的
- std::string 应该按函数的值返回还是按"std::string &s"作为参数返回?
- 将适当类型的迭代器作为参数返回适当类型的STL容器
- 根据参数返回类型
- 如何实现模板函数从模板参数返回向量
- 如何根据模板参数返回不同的类型
- 我可以从引用传递的参数返回值中声明const int吗