通过知道变量的地址,我并没有得到处理变量字节大小的全部目的。例如,假设我知道 int 变量存储在哪里,假设它存储在 address 中0x8C729A09
,如果我想获取存储在该地址中的 int ,我可以取消引用该地址并获取存储在其上的数字。
那么,知道变量字节大小的目的究竟是什么?为什么变量是否具有4 bytes
(存在int
)或者8 bytes
我是否能够通过取消引用来获取变量的值address
?我问这个,因为我正在取消引用某个地址,我认为我需要通过一个 for 循环来获取变量(通过知道起始地址,即变量的地址,以及变量的大小以字节为单位),但每当我这样做时,我只会得到其他也被声明的变量。
一点上下文:我正在开发一个名为 Pin 的工具,并获取在另一个程序中声明的全局变量的地址。
for 案例看起来像这样:
for(address1 = (char *) 0x804A03C, limit = address1 + bytesize; address1 < limit; address1++)
cout << *(address1) << "\n";