notes:data
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:data [2017/11/07 17:15] – abratkov | notes:data [2018/10/24 23:39] (current) – [URLs] ktodd3 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======Data Structures Course | + | <WRAP centeralign round box> |
- | week 11 | + | < |
+ | < | ||
+ | <fs 125%>Course | ||
+ | </ | ||
- | 11/ | + | ======Projects====== |
- | Stacks - Last in, First out - pez dispenser | + | dsi0 |
- | Queues - First in, First out - lines, waiting for something, usually first person gets first pick | + | ael0 |
- | -Andrei | + | ======URLs====== |
+ | Binky Pointer Video: | ||
- | =====week 1===== | + | [[https:// |
- | =====week 2===== | + | [[https:// |
- | Nodes are structures that contain data and also can point and " | + | ======Notes====== |
+ | ====Pointers: | ||
- | Nodes do not necessarily need to be a named variable, but rather can be pointed to by variables that can be moved depending if the list has been changed.(ie. start& | + | char x = 0; |
- | Ternary statements= "(condition) ? statementiftrue : statementiffalse;" | + | char -> 1 byte (8 bits) |
+ | Default char -> signed (2^8 -> 256 -> -128, +127 [one is used for positive/ | ||
- | To free memory: use free() then set to null; ex: free(tmp); tmp = NULL; | + | the asterisk |
+ | signed char *y = NULL; | ||
+ | ^ | ||
+ | |||
+ | (void*)0 | ||
+ | Void pointers are raw memory | ||
+ | |0| | ||
+ | --- | ||
+ | x | ||
+ | 0xdeadbeef | ||
+ | | ||
+ | | ||
+ | y | ||
+ | | ||
+ | |||
+ | Access an address with & | ||
- | =====I dunno lol===== | + | Make y = deadbeef without using "deadbeef" |
- | "List" | + | |
- | =====whaaat===== | + | |
- | --i increments before loop, i-- increments after first iteration | + | Now, y's data is the address of x. |
+ | x contains the data ' | ||
+ | |||
+ | If we do this: | ||
+ | |0| | ||
+ | --- | ||
+ | x | ||
+ | 0xdeadbeef | ||
+ | | ||
+ | | ||
+ | y | ||
+ | | ||
+ | |||
+ | x = 7; | ||
+ | *y = 13; | ||
+ | |||
+ | Then: | ||
+ | |13| | ||
+ | ---- | ||
+ | x | ||
+ | 0xdeadbeef | ||
+ | | ||
+ | | ||
+ | y | ||
+ | | ||
+ | |||
+ | x is now 13 because y is x's address, and you ' | ||
+ | |||
+ | |||
+ | 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.1510092937.txt.gz · Last modified: 2017/11/07 17:15 by abratkov