void *

633 points · 13 comments · view on lemmy.world

13 Comments

rhpp@programming.dev · 97 pts · 2y (9 replies)

Actually void* just points to anything, with no regard to the type of that thing. Pointing to the void is more accurately described by NULL pointer.

tunetardis@lemmy.ca · 38 pts · 2y (1 reply)

Fair, though I guess my interpretation was that void* is kind of like a black hole in that anything can fall into it in an unsettling way that loses information about what it was?

Traister101@lemmy.today · 10 pts · 2y

It erases the type of what your pointing at. All you have is a memory location, in contrast to int* which is a memory location of an int

frezik@midwest.social · 32 pts · 2y (2 replies)

"Allow me to combine the worst feature of strong typing with the worst feature of dynamic typing".

riodoro1@lemmy.world · 27 pts · 2y

Result: one of the most if not the most popular programming languages.

marcos@lemmy.world · 5 pts · 2y

But we need dynamic types!

...hold my beer...

neo@lemy.lol · 7 pts · 2y (2 replies)

So, when I want the void to point back at me, do I have to loop over void* or over NULL?
And how many iterations?

programmer_belch@lemmy.dbzer0.com · 7 pts · 2y

For the void to point back at you just dereference the NULL pointer

sus@programming.dev · 3 pts · 2y

as many iterations as it takes

void* x = &x;
char* ptr = (char*)&x;

while (1) {
    printf("%d\n", (unsigned int)*ptr);
    ptr--;
}
mox@lemmy.sdf.org · 5 pts · 2y

In other words, void refers to the typing of the pointer, not a particular value that might be present at its target.

(But I can see how someone might find it confusing.)

Olgratin_Magmatoe@lemmy.world · 13 pts · 2y

Void star labs/Zach Freedman moment

xia@lemmy.sdf.org · 5 pts · 2y

There are no ints in the void, only... death...

Klnsfw@lemmynsfw.com · 1 pts · 2y

For God sake, be consistent. It's either int*, int**, void* or int *, int **, void *