Project 1 And other projects 2 others Labs will turn to review near the end Where to allocate memory? First: Memory is really simple Forget about can't, assume can Used to be a lot more complicated than it is now It's a big space where data can be written Think of it as a really really long piece of paper The stack: Starts at high addresses and works downwards This is where normal variables go It's a very active place, with lots of changes going on The heap: Lower addresses, longer-lived allocations Less busy Globals: Let's find out Again, not much going on in the way of changes Lasts as long as the program is running Remember: These are virtual addresses The CPU will translate them to real addresses You won't run into data from other processes Remember Python's split function? Let's make something kinda like that It'll dole out pieces one at a time C string split: load_string: Loads a new string to work with get_piece: Gets a piece from the string This should run us into a few storage decisions