What is void** in C#?

前端 未结 6 1154
失恋的感觉
失恋的感觉 2021-01-12 01:42

I\'m looking through the source of a C# program that uses a library written in C. I came across this line and was unsure what it was:

cvbimUNSAFE.GetImageVPA         


        
6条回答
  •  终归单人心
    2021-01-12 02:25

    It's a pointer to a pointer to something not specified. Basically, just think of it as a memory pointer to a raw memory pointer.

    So, int** is a pointer to a pointer to an int, but void** is a pointer to a pointer, but it's not specified what that pointer is pointing at.

    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.

    Not quite. void* is a pointer to something, it's just not specified what that something is and should just be thought of as a pointer to a raw hunk of memory that you have to apply some structure to. For example, malloc returns a void* because it's returning a pointer to a raw hunk of memory.

提交回复
热议问题