Sjmarf@sh.itjust.works to Programmer Humor · 1 year agovoid *sh.itjust.worksimagemessage-square13linkfedilinkarrow-up1648arrow-down110
arrow-up1638arrow-down1imagevoid *sh.itjust.worksSjmarf@sh.itjust.works to Programmer Humor · 1 year agomessage-square13linkfedilink
minus-squarerhpplinkfedilinkarrow-up98·1 year agoActually 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.
minus-square🇨🇦 tunetardis@lemmy.calinkfedilinkarrow-up38·1 year agoFair, 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?
minus-squareTraister101@lemmy.todaylinkfedilinkarrow-up10·1 year agoIt 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
minus-squarefrezik@midwest.sociallinkfedilinkarrow-up35arrow-down3·1 year ago“Allow me to combine the worst feature of strong typing with the worst feature of dynamic typing”.
minus-squareriodoro1@lemmy.worldlinkfedilinkarrow-up27·1 year agoResult: one of the most if not the most popular programming languages.
minus-squaremarcos@lemmy.worldlinkfedilinkarrow-up5·1 year agoBut we need dynamic types! …hold my beer…
minus-squareneo@lemy.lollinkfedilinkarrow-up7·1 year agoSo, when I want the void to point back at me, do I have to loop over void* or over NULL? And how many iterations?
minus-squareProgrammer Belch@lemmy.dbzer0.comlinkfedilinkEnglisharrow-up7·1 year agoFor the void to point back at you just dereference the NULL pointer
minus-squaresuslinkfedilinkarrow-up3·edit-21 year agoas many iterations as it takes void* x = &x; char* ptr = (char*)&x; while (1) { printf("%d\n", (unsigned int)*ptr); ptr--; }
minus-squaremox@lemmy.sdf.orglinkfedilinkarrow-up5·1 year agoIn 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.)
Actually
void*
just points to anything, with no regard to the type of that thing. Pointing to the void is more accurately described byNULL
pointer.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?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“Allow me to combine the worst feature of strong typing with the worst feature of dynamic typing”.
Result: one of the most if not the most popular programming languages.
But we need dynamic types!
…hold my beer…
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
as many iterations as it takes
void* x = &x; char* ptr = (char*)&x; while (1) { printf("%d\n", (unsigned int)*ptr); ptr--; }
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.)