c++ - 我如何使用 void** 函数 (void**)

标签 c++ c

我在看一个程序,我发现了这个函数:

void** function(void**) 

我的问题是我可以提供什么样的参数以及我的返回值应该是什么?

*更新!!! *

我能读懂它,我知道它可以是任何类型的指针的指针,问题是如何使用它? (我刚刚编辑了标题) 提前致谢 !

最佳答案

函数声明:

void **functionName( void**);

... 读作:“functionName 是一个传递双空指针并返回双空指针的函数”。它被传递一个双空指针并返回一个双空指针。

在通用 ADT、比较函数、销毁函数等中看到空指针是非常常见的(省略了这个细节,但它很重要——在 OP 注释中提到)。

示例(无意义的函数):

将此视为您的数组。假设您想要将第一个元素变为字符串“Hai”而不是“Hello”(这太经典了)。

char *arr_of_str[] = { "Hello", "Hi", "Hey", "Howdy" };

...那么你的函数如下:

void **functionName( void** ptr ) {
  char **ptr_char = ptr;

  ( *ptr_char )[ 0 ] = "Hai";

  return ptr;
}

关于c++ - 我如何使用 void** 函数 (void**),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18227828/

相关文章:

c++ - 按值、引用和名称调用

c++ - 继承和构造函数

c++ - 如何始终编译文件?

c++ - QTreeView 复选框

c++ - 在 C++ 中使用 realloc

c - C 的新手,所有的数学计算都略有偏差

c - 如何更改键盘布局(X11 API 解决方案)

c++ - 释放 C 字符串数组

c - 通过指针、转换和取消引用加载 vector ?

c - 这个值从哪里来?