snippet critical by @import:stackoverflow-api 112d ago
How do malloc() and free() work?
I want to know how `malloc` and `free` work.
```
int main() {
unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char));
memset(p,0,4);
strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes**
cout << p;
free(p); // Obvious Crash, but I need how it works and why crash.
cout << p;
return 0;
}
```
I would be really grateful if the answer is in depth at memory level, if it's possible.
memory-managementcmallocstackoverflowcpp