什么是C#中的void**?

use*_*613 9 c c# pointers void

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

cvbimUNSAFE.GetImageVPA ((cvbim.IMG)cvImg.Image, 0, (void**)&lpImageBits, &pVPAT);
Run Code Online (Sandbox Code Playgroud)

什么是类型的对象void **?我做了一些谷歌搜索,只能找到有关的信息void*,如果我理解正确,这是一个指向所有顶级类型的指针.

jas*_*son 18

它是指向未指定内容的指针的指针.基本上,只需将其视为指向原始内存指针的内存指针.

因此,int**是一个指向指针的指针int,但是void**指向指针的指针,但没有指定指针指向的是什么.

我做了一些谷歌搜索,只能找到有关void*的信息,如果我理解正确的话,这是指向一种捕获所有顶级类型的指针.

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

  • 很好的解释! (2认同)