LoginSignup
8
5

More than 1 year has passed since last update.

Visual Studioでメモリを見る

Posted at

C/C++だと良く使うメモリの状態を確認する方法
(あえて記事にするようなものでもないかもしれないけど)

Visual Studio 2019を使っているけど、他のバージョンでもさほど差はないはず。

基本情報とかで2進数や16進数などを勉強する場合なども
実際にメモリを見たほうがわかりやすい事もあると思うので、そういう場合にも使えなくはないかも?

メモリウィンドウを出す

1. 適当にブレークポイントを置いて処理を止める

image.png

2. メモリウィンドウを表示する

image.png

メニューバーのデバッグ(D) → ウィンドウ(W) → メモリ(M) と辿っていきメモリウィンドウを表示する

3. メモリウィンドウがでる

多分このようなものが出るはず。

image.png

アドレス欄にメモリのアドレスを入力すると、そのアドレス付近のメモリの内容が表示されるというもの
C/C++で何かを作っているときはとても重宝する。

変数の中身を見てみる

numという変数がメモリウィンドウで確認してみる。
C/C++では変数名の前に&をつけると、その変数のアドレスになるので
メモリウィンドウのアドレス欄に「&num」と入力するとこうなる↓

image.png

この状態でEnter!

image.png

アドレス欄はnumのアドレスになる。
numには0xFFを入れていたので、メモリでもff(一番左上)が入っている事が確認できた。

※メモリウィンドウは0xFFじゃなくて0xffと小文字で表示されるけど同じもの。

おまけ

エンディアンを見る

4byteのintの変数numを見てみる。

image.png

numには0xA0B0C0D0を代入しているけど、メモリウィンドウではd0c0b0a0となっている。
これはエンディアンというもので、ざっくりいうと人間は1234の方が見やすいけど、メモリは4321と
桁を逆にして持っていた方が都合がいいケースがあり、Windowsは逆持ちが基本なのだ。

このあたりはエンディアンとかリトルエンディアン、ビックエンディアンなど調べてみるといいだろう。

配列を見る

char型の配列、要素は4つで4byteである。

image.png

メモリウィンドウを見ると、01 02 03 04と配列の中身が並んで格納されていることが確認できる。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5