Un punto en un agujero negro.
El otro apunta a la cosa que apunta al agujero negro.
No son realmente la misma cosa, pero los punteros se pueden convertir en void *
. Puede convertir int *
en void *
porque, bueno, es un puntero. void **
es todavía un puntero (solo apunta a un puntero), y como es un puntero, puede convertirlo a void *
. Eso tiene sentido?
Dicho esto, no creo que he tenido un uso para un void **
, pero si usted necesita una gran variedad de void *
s, entonces el tipo habría void **
. (En C) void *
se usa a menudo para mantener un puntero a algunos datos de usuario, pero no sabrá de antemano de qué tipo serán esos datos. Si tenía una matriz de esos, entonces void **
.
Dado que también tiene esto etiquetado como C++: El caso anterior no se aplica realmente: podría utilizar un std::vector<void *>
. Realmente, void *
podría ser cuestionable: una base abstracta podría ajustarse mejor a tus propósitos. void *
es útil principalmente en C.
Necesita nulo ** cuando necesita desreferenciarlo y averiguar a qué nulo * apunta, o incluso cambiar ese nulo * a otra cosa. No puede eliminar la referencia vacía *, o no debería sin gafas de seguridad de alta resistencia. –
Bueno, si quieres pensar de esa manera, ¿para qué sirven los tipos de puntero que no sean 'void * '? – JohnMcG