malloc without free, what happens?

It‘s per-process. Once your process exits, the allocated memory is returned to the OS for use by other processes (new or existing).

To answer your edited question, there‘s only a finite amount of memory in your machine. So if you have a memory leak, then the major problem is that the memory isn‘t available for other processes to use. A secondary, but not negligible, effect is that your process image grows, you‘ll swap to disc and performance will be hit. Finally your program will exhaust all the memory in the system and fail, since it‘s unable to allocate any memory for itself.

It‘s arguable that for a small process with a short lifetime, memory leaks are tolerable, since the leaked memory will be small in quantity and short-lived.

Take a look at this resource, for possibly more info than you‘ll ever need. What we‘re discussing here is dynamic or heap allocation.

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。