C ++の本を読んでいますが、答えが見つからないようです。私が知っているのは、関数を作成するときなどの動的メモリ割り当てだけです。
void memoryleak(){
int * ptr = new int;
}
メモリを割り当ててそのメモリをポインタに返しますが、ポインタはローカル変数であるため、memoryleak()の後、メモリの参照を含むポインタは静的であるため割り当てが解除され、割り当てられたメモリが失われ、プログラムに再利用することはできません。
しかし、それはメモリが永久に失われることを意味するのでしょうか、それともこのコードスニペットをコンパイルした後のようにプログラムが終了するまでしか失われないのでしょうか。
main(){
int * ptr = new int;
}
プログラムが終了した後、メモリは割り当てられたままになりますか、それとも割り当てが解除されますか?割り当てられたままの場合、PCを再起動すると、PCは使用されているすべてのメモリの割り当てを解除しますか?好奇心から、彼らが(割り当てで)使用するメモリについての別の質問は、RAMですか?:)