this post was submitted on 22 May 2024
637 points (98.5% liked)

Programmer Humor

19623 readers
2 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] rhpp@programming.dev 98 points 6 months ago (4 children)

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 points 6 months ago (1 children)

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 10 points 6 months ago

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 points 6 months ago (2 children)

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

[–] riodoro1@lemmy.world 27 points 6 months ago

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

[–] marcos@lemmy.world 5 points 6 months ago

But we need dynamic types!

...hold my beer...

[–] neo@lemy.lol 7 points 6 months ago (2 children)

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?

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

[–] sus@programming.dev 3 points 6 months ago* (last edited 6 months ago)

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 points 6 months ago

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.)