Want more features on Pastebin? Sign Up, it's FREE!
Guest

Penix Pointer Tutorial Vol 2003

By: a guest on Sep 27th, 2010  |  syntax: None  |  size: 15.60 KB  |  views: 498  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Penix's Pointer Tutorial Vol 2003
  2. #coders@efnet Mon Nov 10 00:13:11 2003...enjoy! (NSFW!)
  3. Logfile dug up from harddisk abyss and cleaned for pastebin use by equex 2010
  4.  
  5. 1. Introduction.
  6.  
  7. <domo> can anyone helr me with my pig latin program in C?
  8. <fIyback> why are you writing it in cobol?
  9. <domo> ya
  10. <domo> i wrote part of a pig lating program
  11. <domo> and i got stuck
  12. <domo> can u help me out with it?
  13. <domo> i'm not familiar with pointers
  14. <domo> and i have to continue writing using pointers
  15. <domo> i donno what to do
  16. <penix_> comrade are you on the bots? I want to use my lyme shell in here again.
  17. <penix_> cool, thanks
  18. <penix_> domo: Are you using C?
  19. <vman_____> PENIX
  20. <domo> ya
  21. <penix_> sup hoe?
  22. <vman_____> WTF HAPPEND TO URE OTHER NICK? :/
  23. <penix_> which one?
  24. <domo> penix i am using C
  25. <penix_> omgwtfbbq?
  26. <vman_____> |PENIX|
  27. <penix_> oh, over_load has it
  28. <penix_> So I have a bot waiting to jump on his
  29. <penix_> He's a loser, so he'll blow a gasket
  30. <penix_> flyback style
  31. <sleeve> can anyone suggest a storage structure for a clone of the dots game? (where players take turn connecting dots on a grid to make a box, most boxes win)
  32. <domo> PIG LATIN
  33. <sleeve> i tried using an 2d array of booleans, but it isnt very efficient
  34. <penix_> domo: Ok, so a pointer is like... an arrow kinda
  35. <domo> ya?
  36. <penix_> domo: It points to things.
  37. <penix_> Ya.
  38. <penix_> That's basicly it.
  39. <domo> so i fi send u my code u can't help me out with it?
  40. <penix_> Uh, no.
  41. <sleeve> a pointer is just an address. leave it at that
  42. <sleeve> now back to my dots fiasco :)
  43. <domo> ok
  44.  
  45. 2. Pointer Basics I.
  46.  
  47. <penix_> Ok, lets say I create a "char cock[256];". Now I got an array of 256 chars in cock.
  48. <penix_> cock itself is a pointer
  49. <vman_____> PENIX'S GIMP STATION
  50. <sleeve> yeah
  51. <penix_> it's pointing to the first char in that block of 256
  52. <sleeve> and so if you have a function and you want to return the array of  cocks, the best way to do it is return the address of hte first cock, because you know the rest of hte cocks are sizeof(char) offset
  53. <sleeve> you know that (cock+sizeof(char)) = second element of cock, cock[1]
  54. <penix_> now lets create a pointer "char *ass;"
  55. <sleeve> because memory is sequential like that
  56. <sleeve> lol penix
  57. <penix_> Now you got this pointer called ass, and you got to point your ass at something
  58. <penix_> I know, lets point the ass at the cock
  59. <domo> no th cock at the ass
  60. <domo> :P
  61. * sleeve can tell this is a very helpful channel :)
  62. <penix_> "ass = cock;"
  63. <penix_> We can do ass = cock because cock is also a pointer
  64. <penix_> cock is really just number to a memory address
  65. <penix_> So now the contents of cock are in the ass
  66. <penix_> To play with things in the ass, you do the same thing you would to the cock
  67. <penix_> ass[0], ass[1], etc
  68. <mapp> lol penix
  69. <mapp> nice pimp station:P
  70. <penix_> I need to make an updated picture.
  71. <penix_> Oh wait, I got the cam here today.
  72. <penix_> I got CDs and all over the place. It's not as pretty as it was in that pic.
  73.  
  74. 3. Pointer Basics II.
  75.  
  76. <penix_> Ok, continuing on with pointers
  77. <penix_> Lets create a new variable "char tongue;"
  78. <penix_> tongue is not a pointer, it's just a normal variable.
  79. <penix_> We can just reuse ass since it was the correct pointer type for this example. "char *ass;"
  80. <penix_> Let's point ass at tongue. "ass = tongue;"
  81. <penix_> Oh wait, that's totally wrong!
  82. <penix_> Yes, C is fucking insane too!
  83. <penix_> Now ass is pointed to a memory address of whatever value was in tongue.
  84. <penix_> We have no idea what's in the ass now.
  85. <mapp> lol
  86. <penix_> The correct statement would be like "ass = &tongue;"
  87. <penix_> That points the ass to where the tongue is. & means return the address of something, not the value.
  88. <penix_> Now tongue is in ass, just like cock was in the ass earlier.
  89. <penix_> We know that ass is set to the address of tongue. If you want to change or read the value of what is at the address of tongue, you can do it 2 ways. (Actually, probably more, but 2 for this example.)
  90. <penix_> You can use ass[0], which points to the first, and only, value. This works just like when cock was in the ass.
  91. <penix_> Don't try and read ass[1] though. There aren't any restrictions during compilation that strictly forbid this, but you don't know what is in the ass at that address.
  92. <penix_> You can do ass[123123] if you want, but you don't know what that is. We only know what ass[0] is (tongue).
  93. <penix_> You try to read or write crazy shit and your shit just crashes.
  94. <penix_> The other way you can do things to what's in the ass is like "*ass = 32;"
  95. <penix_> The *ass means do stuff with what is at the address that ass holds. Right now the address of tongue is in the ass.
  96. <penix_> So "*ass = 32;" is changing tongue since tongue is in the ass right now.
  97. <bofhelix> i love it when people have down to earth explainations
  98. <penix_> The best way to learn this stuff is to just take your cock and tongue and play around with ass.
  99. <knightrd> fucking sicko
  100. <knightrd> oyster eating
  101. <knightrd> crazymofo
  102. <penix_> Man, all this programming talk got me hard.
  103. <goog|e> :|
  104. <penix_> domo, you get all this?
  105. <goog|e> what happens if its 64-bit ?
  106. <penix_> Basicly the same. They're all pink on the inside.
  107. <goog|e> rofl
  108. <penix_> Maybe I should put this tutorial on my website.
  109. <vman_____> what tutorial? how to suck 99 niggercocks at once?
  110.  
  111. 4. Intermediate Pointer Arithmetics.
  112.  
  113. <penix_> Wait, one more section a forgot. Pointer arithmatic.
  114. <penix_> For this example we are going to use "char cock[5];" and "char *ass;"
  115. <penix_> Now I'm going to load a string into cock
  116. <penix_> "strcpy(cock, "jizz");"
  117. <penix_> cock is now full of jizz and ready to go
  118. <penix_> But wait, jizz is 4 letters and cock is 5 long. Cock isn't full! If you came to this conclusion, you are stupid.
  119. <penix_> jizz is 4 letters but it must have a null character at the end to terminate it.
  120. <penix_> so cock is set to "jizz\0".
  121. <penix_> Let's get the ass and the cock together again. "ass = cock;"/
  122. <ferrex> hahaha
  123. <penix_> Now let's see what's in the ass.
  124. <penix_> ass[0] == 'j';
  125. <penix_> ass[1] == 'i';
  126. <penix_> ass[2] == 'z';
  127. <ferrex> memcpy(penixbrain, null);
  128. <penix_> ass[3] == 'z';
  129. <penix_> ass[4] == 0;
  130. <penix_> I know, that's just to say
  131. <penix_> I'm not setting it fool, we are looking at what's in the ass.
  132. <penix_> As you can see, "jizz" is in the ass.
  133. <penix_> The jizz came from cock
  134. <imh> this professor is full of shit
  135. <imh> and jizz
  136. <bofhelix> HAHAHA
  137. <penix_> "shit" is not in the ass right now, "jizz" is in the ass right now.
  138. <vman_____> "jizz" is in YOUR ass right now
  139. <penix_> "strcpy(ass, "shit");" would put shit in the ass
  140. <vman_____> cause u've been raped by 20 fat smelly farmhand niggers
  141. <penix_> Let's do some pointer arithmatic now. "ass++;" increments what's in ass right now.
  142. <penix_> ass is a memory address, so we just added 1 to it.
  143. <penix_> Let's look at what's in the ass now.
  144. <penix_> ass[0] == 'i'
  145. <penix_> ass[1] == 'z'
  146. <penix_> ass[2] == 'z'
  147. <penix_> ass[3] == 0
  148. <penix_> ass[4] == ?????
  149. <imh> can we learn about ass methods and properties? can we make ass an object, like women are
  150. <penix_> We don't know what is in the ass at 4, so don't try to take or put anything in that place of the ass
  151. <imh> women.fuck(ass,cawk);
  152. <penix_> Remember, ass is a pointer and doesn't keep track of where you put things. You point your ass at the wrong thing and you don't know what will end up in your ass.
  153. <imh> oh ok
  154. <imh> sorry, im not doing well in your class
  155. <fIyback> hi penix
  156. <penix_> who the hell are you?
  157. <fIyback> you know
  158. <imh> im going to start a C tutorial site using sex as a programming example
  159. <fIyback> your old pal flyback
  160. <fIyback> have any new gay porn?
  161. <domo> ewww
  162. <fIyback> remember the time you showed me your collection? it was the biggest ive ever seen
  163. <domo> :)
  164. <imh> gay porn? wtf
  165. <imh> gross
  166. <penix_> Porn? Why look at porn when you can get the real thing for free?
  167. <imh> so flyback doesnt have a bitch underneath his desk like we do penix?
  168. <fIyback> penix is pathetic
  169. <penix_> He has a male bitch under his desk.
  170. <imh> oh
  171. <imh> what a freak
  172. <penix_> Anyway, gotta finish the tutorial.
  173. <imh> ok later penix
  174. <penix_> later
  175. <penix_> So let's do like "ass--;".
  176. <imh> oh cool, y ou're not leaving :)
  177. <penix_> Yeah, I gotta finish this chat tutorial for domo
  178. <imh> ok
  179. <penix_> Now the address of ass is lowered by 1. Let's look at what's in the ass now
  180. <penix_> ass[0] == 'j' ass[1] == 'i' ass[2] == 'z' ass[3] == 'z' ass[4] == 0
  181. <fIyback> flyback is in the ass
  182. <fIyback> what a nice ass you have penix
  183. <imh> dude shut up the prof is talking
  184. <penix_> "jizz" is in the ass once again.
  185. <fIyback> you fag
  186. <fIyback> why are you gay?
  187.  
  188. 5. Advanced Pointer Arithmetics.
  189.  
  190. <penix_> Let's do a slightly more complex example. Starting over "char *ass;
  191. <penix_> "
  192. <penix_> "char cock[10]";
  193. <penix_> Now we got a large cock, twice the size of the last cock, but the same ass.
  194. <fIyback> penix: why does everything say have to do with males?
  195. <fIyback> you are a fag
  196. <fIyback> penix is gay for real
  197. <ferrex> how about we address multi dimensional arrays now
  198. <ferrex> in my current favorite: php
  199. <domo> LOL
  200. <penix_> Shut up, I'm trying to teach someone about c pointers.
  201. <ferrex> its as easy as this: $faggots = array();
  202. <ferrex> you then put in penix
  203. <fIyback> why cant you use real examples and not promotions of homosexuality
  204. <ferrex> $faggots['penix'] = array();
  205. <ferrex> and now you can give penix various attributes by using the multi dimensionality
  206. <ferrex> $faggots['penix']['penis_size'] = 0;
  207. <ferrex> $faggots['penix']['IQ'] = 11;
  208. <penix_> Ok, so let's put something in our cock array. "strcpy(cock, "shit jizz");".
  209. <ferrex> $faggots['flyback']['penis_size'] = -2.4;
  210. <ferrex> $faggots['flyback']['IQ'] = 1;
  211. <ferrex> if you want to display all the $faggots now, all you have to do is
  212. <penix_> ewww, he has an imploding penis.
  213. <ferrex> while( list($ke) = each($faggots) ) {
  214. <antilice> I actually thought his tongue in ass pointer lesson was fairly clever. Surely his IQ is higher than 11
  215. <bofhelix> yeah
  216. <bofhelix> im logging this shit
  217. <bofhelix> lol
  218. <ferrex> echo "penis size of $ke:".$faggots[$ke]['penis_size'];
  219. <ferrex> }
  220. <ferrex> isnt that cool?
  221. <vman_____> what? u fucking dead niggers in the ass...
  222. <vman_____> thats not cool
  223. <vman_____> thats just NASTY
  224. <penix_> Ok, so now we got "shit jizz\0" in cock
  225. <fdsks> gayz
  226. <ferrex> you shut the hell up vman_____
  227. <domo> CAN ANYONe help me out in a pig latin program?
  228. <ferrex> $faggots['vman']['skin_color'] = BLACK;
  229. <ferrex> there you go
  230. <vman_____> :(
  231. <goog|e> rofl
  232. <vman_____> i was just trying to be nice :(
  233. * linker sets mode: +o disturb`
  234. <penix_> Let's point the ass at something, more specificly, the cock.
  235. <ferrex> dont forget a define('BLACK', '#000000'); though
  236. <penix_> "ass = cock;". Now let's do something more advanced. Let's split the cock in 2.
  237. <disturb`> ouch!
  238. <imh> penix!
  239. <imh> stop this tutorial!
  240. <penix_> We are going to replace the " " in "shit jizz\0" with '\0'. This will create 2 strings.
  241. <goog|e> lmao
  242. <penix_> Don't worry, this tutorial has a happy ending.
  243. <ferrex> it wont
  244. <ferrex> you dumbass
  245. <ferrex> it will just terminate the string after shit
  246. <ferrex> and its still one string
  247. * imh shakes his head
  248. <penix_> C doesn't have native strings, dumbass
  249. <penix_> I'm just saying
  250. <ferrex> and speaking in php '\0' is wrong, as '' wont evaluate control characters, variables and so on
  251. <ferrex> in C this doesnt have any meaning anyway
  252. <goog|e> you know ferrex
  253. <goog|e> just cause you dont understand this
  254. <goog|e> doesnt mean you have to go ruin for the rest of us
  255. <penix_> wtf are you talking about '\0' is the same as 0
  256. <penix_> crazy fooo
  257. <ferrex> i said in php '\0' is \0, and "\0" is 0
  258. <goog|e> just slap him around
  259. <imh> who the fuck is talking about php
  260. <ferrex> dumb bastard
  261. <penix_> shut up fool, this is C, not php
  262. <ferrex> i was throwing that in, as he was using "" and '' like a mofo
  263. <penix_> Ok, so we do like this: "ass[4] = '\0';" or better yet "ass[4] = 0;".
  264. <ferrex> and \0 will still just terminate the string you idiot
  265. <ferrex> go print it, it'll print "shit"
  266. <penix_> You slut, I'm not done with my tutorial
  267. <imh> dude, ferrex is that dumb asian chick who sits at the front of the class and gets the professor off subject with stupid questions
  268. <penix_> shut up
  269. <goog|e> rofl
  270. <ferrex> im not asian and not a chick
  271. <goog|e> imh - is she pretty :P ?
  272. <ferrex> im a huge mean german
  273. <imh> no she's dog ugly
  274. <ferrex> who will burn you alive if you dont stfu
  275. <goog|e> :oh :(
  276. <goog|e> i'm beginning not to like this tutorial
  277. <imh> it was good till the stupid asian chick fucked it up
  278. <ferrex> how about assembler instead
  279. <ferrex> mv kz, google
  280. <imh> asking questions about php and shit
  281. <ferrex> mov even
  282. <ferrex> damnit
  283. <antilice> Yeah, with all the interruptions this is really starting to suck
  284. <goog|e> excuse me teacher
  285. <penix_> ok, now we are going to print what is in ass. "printf("%s\n", ass);".
  286. <penix_> This will print out "shit".
  287. <goog|e> but i feel like my privilege to learn is being
  288. <goog|e> ooooooooo
  289. <goog|e> opressed here
  290. <penix_> yes, ferrex is very disruptive.
  291. <penix_> Someone put something long and hard in his mouth to shut him up.
  292. <ferrex> come and beat me with a stick then
  293. <ferrex> i shall beat you back with my arsenal of nuclear weaponry
  294. <penix_> So right now we got shit in the ass. Let's do like "ass = cock[5];"
  295. <ferrex> oh and by the way
  296. <penix_> Now let's see what's in the ass
  297. <ferrex> "printf("%s\n", ass);". will not print "shit"
  298. <ferrex> it will print "shit
  299. <ferrex> "
  300. <penix_> Oh yeah, good catch. I put a new line at the end.
  301. <penix_> So do like "printf("%s", ass);" and now we print "jizz";
  302. <penix_> Now jizz is in the ass again
  303. <antilice> Wow, jizz is in the ass again? That's slick
  304. <ferrex> why dont you tell us about sockets, and how we can penetrate 'ass.hole.org' with packets that contain 'sperm'
  305. <imh> you're in the wrong class
  306. <imh> shut up asian chick
  307. <penix_> right now we're just talking pointers, not sockets
  308. <ferrex> no im right, and pretty sure
  309. <ferrex> isnt this "irc perversion for beginners"?
  310. <imh> no its C pointers miss sucky sucky
  311. <fIyback> penis is gay
  312. <fIyback> ban him
  313. <fIyback> he is the fake flyback too
  314. <fIyback> which proves his gayness
  315. <ferrex> i call that sexual offense imh
  316. * imh is sorry :(
  317. * imh begs ferrex not to tell the dean
  318. <penix_> wait a sec... i think i had an error up there that no one caught
  319. <ferrex> seing even the teacher doesnt do anything i will just quit the class
  320. <penix_> "ass = cock[5];" is wrong, it should have been "ass = &cock[5];"
  321. <penix_> cock[5] == 'j', not an address
  322. <penix_> ass points to an address, so we need to do like &cock[5]
  323. <penix_> Let's do like "ass--;" which sets ass to cock[4]
  324. <penix_> cock[4] == 0, the null string terminator
  325. <penix_> if we try to print ass now, "printf("%s", ass);", we get "".
  326. <ScratXP> this is still goin gon?
  327. <ScratXP> huhu
  328. <penix_> Nothing, because the first character ass[0] is set to the null terminator.
  329. <ScratXP> the first character is arnold swartaznegger?
  330. <penix_> Let's over write that with " ", "ass[0] = ' ';"
  331. <ferrex> i think penix_ lost the point
  332. <penix_> Now we are back to what we started with. Let's point the ass back at cock: "ass = cock;"
  333. <penix_> And print it out: "printf("%s", ass);", which prints "shit jizz".
  334. <xyclone> wtf
  335. <penix_> As you can see, we are back to having shit and jizz in the ass.
  336. <penix_> And that concludes my pointer examples.
  337. <penix_> Again, the best way to learn this stuff is just to take your ass and cock and play with them.
  338. <mapp> lol
  339. <goog|e> and that concludes sex education for today
  340. * domo (~a@63.172.9.25) Quit
  341. <penix_> wtf, stupid domo
  342. <vman_____> i think u mean homo :(
clone this paste RAW Paste Data