138: Pointers

Explain xkcd: It's 'cause you're dumb.
Revision as of 18:48, 23 February 2013 by Divad27182 (Talk | contribs)

Jump to: navigation, search
Pointers
Every computer, at the unreachable memory address 0x-1, stores a secret. I found it, and it is that all humans ar—SEGMENTATION FAULT.
Title text: Every computer, at the unreachable memory address 0x-1, stores a secret. I found it, and it is that all humans ar—SEGMENTATION FAULT.

Explanation

This comic is about a play on the dual meaning of the word “pointer”. Cueball is playing a computer game in the comic, but he seems to be stuck. So he askes Black Hat for a few tips (“pointers”) to get unstuck again. Black Hat wants to be annoying, so he spits out a couple of (seemingly random) 32-bit hexadecimal addresses, which are “pointers” in a programming language. These pointers are used to access a certain location in the computer's memory in order to fulfill a task. Cueball is then annoyed at Black Hat for not answering his question.

The "segmentation fault" the image text is referencing also arises from this kind of memory access. If you define a pointer to an invalid address, then try to access the memory location associated with it, you could end up with this exception. The hexadecimal address 0x-1 is one of those invalid access pointers, because memory locations generally start at numeric location 0.

The "pointers" given are interesting in that all the bytes are printable ASCII characters. In this case (and assuming network byte order), ":(!:", "c99,", and "sch.". It is also interesting that the values that are followed by punctuation each end in that punctuation.

Transcript

[Cueball is playing a video game, with Black Hat standing behind him.]
Cueball: Man, I suck at this game. Can you give me a few pointers?
Black Hat: 0x3A28213A 0x6339392C, 0x7363682E.
Cueball: I hate you.
Comment.png add a comment!

Discussion

Rikthoff (talk) The issue date is definitely off. Can anyone fix this?

--done (yes, anyone can fix this.) Divad27182 (talk) 18:49, 23 February 2013 (UTC)

Wait until he finds out they're codes for that old saving system. 21:42, 3 June 2013 (UTC)

Or perhaps the Black Hat _is_ answering the question but in an obscure way. The addresses might be pointing to the locations where the game keeps its important information (such as the score count or the level), so it can be cheated by changing the data at these locations.

The problem with 0x-1 is not that it's missing digits, it's that the memory in the computer is represented as a closed loop. So if you try to go back to the cell "before the first cell", you will really access the last cell, 0x-1 really equals to 0xFFFFFFFF in the 32-bit address space. Evidently, Cueball had found a way around this only it didn't quite work out. (People deeply interested in the workings of the pointers should also read about the memory protection modes and alignment requirements, both of which might interfere with reading from the address 0xFFFFFFFF.) 108.162.246.5 00:33, 28 January 2014 (UTC)
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal or Bitcoin?