c# - C# 中的 void** 是什么?

标签 c# c pointers void

我正在查看使用 C 语言编写的库的 C# 程序的源代码。我遇到了这一行,但不确定它是什么:

cvbimUNSAFE.GetImageVPA ((cvbim.IMG)cvImg.Image, 0, (void**)&lpImageBits, &pVPAT);

什么是 void ** 类型的对象?我进行了一些 Google 搜索,只能找到有关 void* 的信息,如果我理解正确的话,它是一种指向某种捕获所有顶级类型的指针。

最佳答案

它是一个指向未指定对象的指针。基本上,只需将其视为指向原始内存指针的内存指针即可。

所以,int** 是一个指向 int 的指针,而 void** 是一个指向指针的指针,但未指定该指针指向什么。

I did some google searches and could only find information about void*, which is a pointer to a sort of catch all top level type, if I understood correctly.

不完全是。 void* 是指向某个东西的指针,它只是没有指定那个东西是什么,应该只被认为是指向你必须应用一些结构的原始内存块的指针。例如,malloc 返回一个 void*,因为它返回一个指向原始内存块的指针。

关于c# - C# 中的 void** 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205541/

相关文章:

c# - 在 c# dll 中调用 delphi5 过程

c# - 显示 TreeNode 的图像

c - 如何获取数字序列然后打印最后 5 个?

c - 即使包含 <stdlib.h> 也会出现警告 : implicit declaration of function ‘malloc’ ,

c - 在堆栈上查找函数的根

c# - 由另一个对象决定的有限单例生命周期

javascript - 恢复 asp.net 中 RadiobuttonList 的先前状态

c - C语言中的内存分段

c - 尝试读取隐藏文件 linux 时出现段错误

C++ 堆栈与堆和指针