they used to call him the deref king back in college
Worse version of this


Null termination is no longer recommended, use fat pointers instead!
Why would I want to be shown the concept of pointers by an eight year old?
I’ll have you know, she’s canonically 300 years old
🙄
It’s a good reference (lol) even if it’s getting downvoted
Wait. It’s been a long time but shouldn’t be int*** -> int** -> int* -> int ?
I think int*** is meant to be pointing at int**, but the image is just unclear about where everything is in perspective.
Pretty sure the image is clear:
int*** -> int* int** -> int Int* -> intClarity doesn’t mean correct. But that’s probably why it’s posted here. 🤷♂️
RT*** isn’t pointing at RT*, he’s pointing at the TV showing RT**. The fact you think otherwise is what makes the image unclear. I’m not sure why you insist on them being wrong.
What’s the * for again?
It’s to check to see if commenters know how to escape the symbol. Congratulations! You passed!
Source: I made it up.
You don’t need to escape standalone *. At least not on Lemmy.
Well, I thought my misinformation was funny.
That one’s a typo
I mean, that’s pretty much what happens to me every time I try to use pointers, so the meme checks out.
yep this is just someone misunderstanding pointers lol

That’s not the end of the chain either, right?
Because : int -> &int -> &&int
Or can you not use the address operator like that? It also might be int& &, I failed cs2200 on this exact type of technicality
Rumble Tumble Games in the wild
Seeing him break containment is wild
Didn’t expect to see the Drift King here
Drift King? You mean Dan the Villian
Real talk: is there any practical use-case for
T***of any pointee type?Dynamically allocated multidimensional arrays.
Ah right, so that would be a 3D array.
T*is a single row ofTT**is a list of rowsT***is a list of “layers” in the third dimension
This would be incredibly hazardous to pass around as a bare pointer with no context, though. I’d expect to see this in a
structthat, at minimum, also includes fields for the size of each dimension.This
SpartaC. We live for danger.
Tesseract Array
Where?
In the C programming language. Or do you mean which C project specifically? Because as Technus surmises in their response, it’s usually a better idea to set up aliases (
typedefs or heck, evens) so that you’re offloading some of the mental strain keeping track of the layers, and that’s likely to be what happens in production code.But the underlying data type is still
T***.deleted by creator
Why should the left one in the rectangle be int**? It doesn’t make sense to me, they are both clearly just int*
What am i missing?
Perspective innit
So, googling it, the general premise is you should use smart pointers instead to avoid crashes. Got it.
Smart pointers implies C++, which is not the right answer.
Unlike many other programming languages, which are often picked up on the go from tutorials found on the Internet, few are able to quickly pick up C++ without studying a well-written C++ book. It is way too big and complex for doing this. In fact, it is so big and complex, that there are very many very bad C++ books out there. And we are not talking about bad style, but things like sporting glaringly obvious factual errors and promoting abysmally bad programming styles.
https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
Considering that most of the “answers” I’ve found on StackOverflow were complete dogshit, I’m wary of this reading list
They all have footguns that cause different crashes.
If you want to do explicit memory access without inevitable safety problems, you need Rust. That’s the whole hype with Rust.
But… per-process-isolation is a hardware feature, no?
Sure, that may be (it’s definitely not in userspace). But don’t forget it works by crashing your program.
So you really should implement it in your compiler so you don’t contravene it
Uh

I think I’ll just let the cat drive instead
C# delegates enter the chat and nod.
Am I a computer scientist now?
No, you need to learn a lot more. Other programming concepts, programming paradigms, algorithms, and many more.
Now that explain the & part of the pointers that I never really understood.
The
&operator references the value.int i; int* p = &i;In C++, the
&at the function argument makes it a reference type (safe pointer).void someFunction(int& refVal) { [...] }As someone who likes working with higher level languages, I never understood the pass by reference or even referencing different pointers. It never stuck out to me as useful in what I want software to do. It’s too close to hardware.
if you’re working with higher level languages you pass-by-reference all the time. give a list to a function to modify it? that’s by reference. giving an event handler function to a framework? that’s by reference. setting a property on an object? that’s usually by reference.
the list is the helpful part to understanding it.
it would be terrible if, with bar being a list and foo being a member of the list
if foo in bar: return truemodified the list. So yeah, you want to look at the list not edit the list, it’s a pointer.
other way round surely? if you want to modify the original object, use a pointer. if you don’t, use a copy.
Your example doesn’t make sense to me. Why would you modify the entire list by checking if something is in it? Also, you can totally edit the list via a pointer, that’s how you’re supposed to edit the list if you want any performance. Otherwise you’d be copying the list on every modification, which is terribly inefficient
Reference values are quite useful, such as:
double valOut; if (parseDouble(valOut) == 0) { //Argument of parseDouble is ref type, no & needed for input, no exceptions needed for error handling [...] //No error, code executed normally } else { [...] //Erroreus input }
*x = dereference or “point to”. Treats the variable
xas containing a pointer value. Evaluates to a variable existing at the address inx.&x = reference or “get address of”. Evaluates to the address of
x.They’re complimentary operators, so
*(&x)cancels out and is equvalent to justx.
that’s not LaurieWired
So, confusing, nonetheless.
Uh I’m a charisma class (with unfortunate base stats) what’s int
It’s what makes mages turn those squiggly lines on paper into fireballs.
Not clerics though, they’re different.
The placement of the labels is a bit sloppy but I think it tracks. The character in the middle (int*) is pointing at int, then the one on the left (int**) is pointing at the middle one (int*), etc
What I want to know: what is that shirt and where do I get it?
He dereferenced a pointer to the 1970s and retrieved the shirt that way.
So it’s like a mystical artifact of the computational Big Bang? You deref a pointer to the very beginning of Unix time and bam, suddenly you’re styling like Richard Stallman?










