Editing 138: Pointers

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 8: Line 8:
  
 
== Explanation ==
 
== Explanation ==
This comic is about a play on the dual meaning of the word "pointer." [[Cueball]] is playing a video game, but he seems to be stuck. So he asks [[Black Hat]] for a few tips ("pointers") to progress in the game. Black Hat is, as usual, annoying, so he spits out a couple of (seemingly random) 32-bit hexadecimal addresses, which are "{{w|Pointer (computer programming)|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; however, this would not be helpful in improving his playing the game the normal way (though [[#Alternate Explanation|see below]]) by perhaps learning of a better weapon loadout, or a quicker route to achieve some mission goal. Ultimately, Cueball is then annoyed at [[Black Hat]] for not answering his question in a useful manner.
+
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 asks [[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.
  
A {{w|segmentation fault}}, as referred to in the title text, is a result by accessing invalid memory addresses. 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 definitely invalid, because it's out of range. If you treat pointers as signed numbers, it points below the lowest address, 0; if you treat them as unsigned (meaning the numbers wrap around, so -1 is the same as the highest address - 0xFFFFFFFF on a 32-bit system), if it's pointing at any object larger than a byte, most of that object is past the highest address. So, this is a "hidden location," but as soon as you try to read more than one byte at that location, you will get a segfault. The title text states that Randall has found a secret value hidden at that location anyways, but before he can reveal its apparently-existential meaning, a segfault cuts him off to prevent him from doing so.
+
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 ending letters of the pointers are spelling, reading top to bottom, the word ACE. As Cueball is playing a game, Black Hat could be additionally saying that he's an ace of the game.
+
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.'''".
=== Alternate Explanation ===
+
It is also interesting that the values that are followed by punctuation each end in that punctuation.
Pointers are often used to cheat in games and do things like change the amount of money you have, if Cueball was prepared and able to directly change the source-code, though there is insufficient detail given as to whether these are perhaps memory locations to change (to patch with different data values) or alternate data-pointers (to be placed somewhere unknown), either of which ''could'' change the game in ways that make it easier to play (such as making more bonus items available, or by removing confounding gameplay features).
 
 
 
The 'pointers' Black Hat tells him could also be cheat codes, which are 'sanctioned' methods of changing the gameplay. They are built into the normal game interface for testing purposes (perhaps accidentally left in, upon release) and/or provided as 'Easter Eggs' for the players to experience different levels of non-vanilla gameplay. If these are indeed useful cheat-codes, their complexity (and the fact that Black Hat can recite them verbatim without looking them up, presumably being very familiar with their use) would give an extra reason for Cueball to hate him.
 
  
 
==Transcript==
 
==Transcript==
Line 24: Line 21:
 
:Black Hat: 0x3A28213A 0x6339392C, 0x7363682E.
 
:Black Hat: 0x3A28213A 0x6339392C, 0x7363682E.
 
:Cueball: I hate you.
 
:Cueball: I hate you.
 
==Trivia==
 
In ''[[xkcd: volume 0]]'', the pointers are different. They are 0x4B657932, 0x6F66383A, and 0x73CD4542.
 
  
 
{{Comic discussion}}
 
{{Comic discussion}}
 
[[Category:Comics featuring Black Hat]]
 
[[Category:Comics featuring Black Hat]]
 
[[Category:Comics featuring Cueball]]
 
[[Category:Comics featuring Cueball]]
[[Category:Puns]]
 
[[Category:Video games]]
 
[[Category:Programming]]
 

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)