int main() { /* NEPプログラミング部 */ } #41

41以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 02:16:17.47 ID:8qDetHhm

実際に試してみよう
Nectarクラスがあるとして、nectarインスタンスを作ってメンバvolumeの値を読み出したいとする

これは正しい例
Nectar* nectar = new Nectar(); でOSに Nectar のインスタンスをメモリ上に作ってもらい、その先頭アドレスを nectar に保存して、nectar->volume でメンバ volume の値を正常に読むことができている
https://wandbox.org/permlink/TdyKvuIERX0cWdkl

これはバグっている例
Nectar* nectar = NULL; で nectar をNULLポインタにして、nectar->volume でメンバ volume の値を読もうとすると、(先頭アドレス) + (メンバのオフセット) = 0 + 8 = 8 番地にアクセスしようとして、OSにそこ入っちゃダメ!って怒られて強制終了させられる
https://wandbox.org/permlink/WNyFLKif7ioptgQf

このスレッドを全て表示


このスレッドは過去ログです。