User Tools

Site Tools


notes:data

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:data [2015/01/19 20:05] – created wedgenotes:data [2018/10/24 23:39] (current) – [URLs] ktodd3
Line 1: Line 1:
-======Data Structures Course Notes======+<WRAP centeralign round box> 
 +<WRAP><color red><fs 200%>Corning Community College</fs></color></WRAP> 
 +<WRAP><fs 150%>CSCS2320 Data Structures</fs></WRAP> 
 +<fs 125%>Course Wiki Page</fs> 
 +</WRAP>
  
-=====week 1=====+======Projects====== 
 +dsi0 
 +ael0 
 +======URLs====== 
 +Binky Pointer Video:
  
-=====week 2=====+[[https://www.youtube.com/watch?v=f-pJlnpkLp0|Binky Pointer Video]]
  
-=====week 3=====+[[https://www.learn-c.org/en/Linked_lists|Basic linked list tutorial ]] 
 +======Notes====== 
 +====Pointers:==== 
 + 
 +char x = 0; 
 + 
 +char -> 1 byte (8 bits) 
 +Default char -> signed (2^8 -> 256 -> -128, +127 [one is used for positive/negative value]) 
 + 
 +the asterisk (*) indicates a "pointer" 
 +    signed char *y = NULL; 
 +                ^ 
 +                                 
 +(void*)0 
 +Void pointers are raw memory 
 + 
 +    |0| 
 +    --- 
 +    x 
 +    0xdeadbeef 
 +       |NULL(0)| 
 +       --------- 
 +       y 
 +       0xcoffee 
 +        
 +Access an address with & 
 + 
 +Make y = deadbeef without using "deadbeef" by using the address (&) my man. 
 + 
 +   y = &x 
 +Now, y's data is the address of x. 
 + 
 +x contains the data '0' 
 + 
 +If we do this: 
 +    |0| 
 +    --- 
 +    x 
 +    0xdeadbeef  <- address 
 +       |0xdeadbeef| 
 +       ------------ 
 +       y 
 +       0xcoffee <- address 
 +        
 +   x = 7; 
 +   *y = 13; 
 + 
 +Then: 
 +    |13| 
 +    ---- 
 +    x 
 +    0xdeadbeef  <- address 
 +       |0xdeadbeef| 
 +       ------------ 
 +       y 
 +       0xcoffee <- address 
 + 
 +x is now 13 because y is x's address, and you 'pointed' 13 to the address. Ill, dog. 
 + 
 + 
 +Double pointers are arrays or whatever 
 +    |          | 
 +    ------------ 
 +    z 
 +     
 +    signed char **z = NULL; 
 +     
 +So we're gonna give this some garbage 
 +    |0xcoffee| 
 +    ---------- 
 +    z 
 +    0xc05fefe 
 +And do nothing with it because we kind of just stopped I think. 
 +     
 +Memory addresses are 8 bytes on 64 bit linux systems. 
 +4 bytes on 32 bit linux systems. 
 +======Other======
notes/data.1421715907.txt.gz · Last modified: 2015/01/19 20:05 by wedge