将指针的地址作为参数传递
Passing the address of a pointer as a parameter
传递指针地址作为参数的点是什么?例如:
int *ptr_one;
ptr_one = (int *)malloc(sizeof(int));
则函数被调用如下:
func(&ptr_one);
请注意,函数参数如下:
func(int **ptr)
{
......
}
如果您希望修改指针本身,那么您需要通过引用或指针地址来传递它。例如,
func(int **ptr)
{
free(ptr);
ptr = new int[2]; //side note: use new instead of malloc in C++
//memory allocated with new is deallocated with
//delete
}
在C中,传递指针的地址是在函数中分配或释放该指针内存的唯一方法。然而,在C++中,通常最好通过引用传递。因此,您的代码的C++版本看起来像:
int *ptr = new int;
func(ptr);
delete ptr;
void func(int *&ptr) {
.
.
.
}
将指针传递给指针的目的是为了修改指针变量。
回想一下,从C风格的编码中,可以通过将地址或指针传递给参数来修改参数。如果参数是需要修改的int,则会传递一个指向该整数的指针。同样,如果函数将修改指针参数,则它是通过指针到指针(或指针的地址)传递的。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用指向成员的指针将成员函数作为参数传递
- 如何将参数传递给正在使用模板的类
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 修改函数中的指针(将另一个指针作为参数传递)
- 如何将部分流作为参数传递
- 我正在开发服务器,ip作为参数传递不起作用
- 将成员函数指针作为参数传递给模板方法
- 如何在C++中将迭代器作为函数参数传递
- 将附加参数传递给使用 beast::bind_front_handler 调用的函数
- 如何将一个类的函数作为另一个类的另一个函数的参数传递
- 将参数传递为"const"的奇怪效果
- 如何在 c++ 中将函数作为参数传递?
- 如何在程序集函数中将元素数组作为参数传递时转发 ARM 寄存器的地址指针
- 通过C 中的构造函数将地址参数传递给基类指针
- 其地址作为参数传递的函数
- 将指针的地址作为参数传递
- 为什么在作为函数参数传递时无法更改类型为"const int *"的指针的地址?
- 将指向函数的指针数组作为"int"参数传递是否可以将地址转换为整数?
- C++:将 int 的地址作为参数传递