They are core C functions. malloc allocates N bytes of memory, free frees that memory. * is t he dereference operator, so *x is trying to dereference freed memory, which is undefined behavior
That makes sense. Java in particular does a lot of this under the hood; anything that isn't a primitive is actually a reference (special C++-style pointer with non-pointer syntax), and new is a combination of malloc() & objection creation. (deleteshould be a combination of object destruction & free(), but they had to change how it works to accomodate the garbage collector.)
C (and C++) just makes you do the actual bookkeeping yourself.
1
u/LostgamerFJ 2d ago
I'm not good enough at programming for this. What do the "free" and "malloc" functions do?