平成30年春期午後1問1 設問2
suomiさん
(No.1)
P2. 「DeleteNoteメンバ関数が呼び出された直後にRegisterNameメンバ関数が呼び出される」とありますが、
具体的にはどのタイミングで呼び出されているのでしょうか。
図3を見ると、m_noteのメモリ領域が開放される前に、char[8]用メモリ領域が確保されているので、
delete m_note; が実行される前にRegisterNameが呼び出されていると考えてもよいのでしょうか。
また、下線部②でRegisterNameを呼び出す際には、m_noteとm_note->name共に真であると考えたのですが、
この段階でもm_noteはメモリ解放されないのでしょうか。(delete m_note;の実行)
最後に、解放済みメモリ領域にchar[8]用メモリ領域を用意するのは簡単にできることなのでしょうか。
C++やメモリについて分かっていないことが多く、的はずれな質問かもしれませんが、ご教授いただけますと幸いです。
具体的にはどのタイミングで呼び出されているのでしょうか。
図3を見ると、m_noteのメモリ領域が開放される前に、char[8]用メモリ領域が確保されているので、
delete m_note; が実行される前にRegisterNameが呼び出されていると考えてもよいのでしょうか。
また、下線部②でRegisterNameを呼び出す際には、m_noteとm_note->name共に真であると考えたのですが、
この段階でもm_noteはメモリ解放されないのでしょうか。(delete m_note;の実行)
最後に、解放済みメモリ領域にchar[8]用メモリ領域を用意するのは簡単にできることなのでしょうか。
C++やメモリについて分かっていないことが多く、的はずれな質問かもしれませんが、ご教授いただけますと幸いです。
2024.08.21 14:22
みなとさん
(No.2)
ダングリング・ポインタなるものが存在するのですね。
もう少し自分で調べてから掲示板を建てるべきでした。
もう少し自分で調べてから掲示板を建てるべきでした。
2024.08.21 14:57
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告