When a move occurs, what happens behind the scenes?
I understand that the whole "pass by reference" and "pass by value" concepts are kind of turned on their heads in Rust, but I am interested in using Rust to improve my writing C code, and so I think it might be helpful for me to get an idea of how I could simulate the move concept in C.
My question is, is moving something the equivalent of passing a pointer, and then noting that the receiver is now responsible for disposing of memory on the heap? Or is something else going on?