This website contains age-restricted materials including nudity and explicit depictions of sexual activity.
By entering, you affirm that you are at least 18 years of age or the age of majority in the jurisdiction you are accessing the website from and you consent to viewing sexually explicit content.
That’s not a pointer to another pointer, but a pointer to a data structure that happens to contain another pointer.
The distinction is meaningless in the land of Opcode’s and memory addresses
For example, a struct is just an imaginary “overlay” on top of a contiguous section of memory
Say you have a struct
struct Thing { int a; int b; Thing* child; } Thing foo {}
You could easily get a reference to
foo->child->b
by doing pointer arithmetic*((*((*foo) + size(int)*2)) +size(int))
(I’ve not used C much so I’ve probably got the syntax wrong)
Magic.
Blasphemy.
Yes, you can do crazy shit if you try hard enough, but every reasonable programmer would access
foo->child->b
alsfoo->child->b
and not via that crazy LISPy expression.By question was: Why would you have a pointer to a memory address that itself only holds a pointer somewhere else?
So far the only reasonable explanation is from @[email protected]:
I’m more talking about theory than practical.
I’ve not developed anything in C/C++, so I don’t know practical uses for a double pointer, aside from multidimensional arrays, or arrays of pointers
My point was that, conceptually, pointers to pointers is how most complex data structures work. Even if the C representation of said code doesn’t have a
int**
somewhere