获取内存中变量的实际地址

时间:2017-04-25 17:29:28

标签: c++ memory

我使用像multis这样的数组:: iterator it [100] 当我这样做:它[0] = mymultiset.insert(15)然后它[1] = mymultiset.insert(17)我得到相同的地址,如00C0E960(%p)或12642656(%d)。 我的问题是,我需要实际地址而不是这个......用于与另一个迭代器进行比较。

伪代码:

multiset<int> a;
multiset<int>::iterator x1, x2;
multiset<int>::iterator it[10000];
int j = 0
it[j] = a.insert(15);
x1 = x2 = it[j];
j++;
it[j] = a.insert(74);
x1 = it[j];
printf("Value: %d, addressP: %p, addressD: %d\n", *it[0], it[0], it[0]);
printf("Value: %d, addressP: %p, addressD: %d\n", *x1, x1, x1);
printf("Value: %d, addressP: %p, addressD: %d\n", *it[1], it[1], it[1]);
printf("Value: %d, addressP: %p, addressD: %d\n", *x2, x2, x2);

输出:

Value: 15, addressP: 00BDF0F0, addressD: 12447984
Value: 15, addressP: 00BDF0F0, addressD: 12447984
Value: 74, addressP: 00BDF0F0, addressD: 12447984
Value: 74, addressP: 00BDF0F0, addressD: 12447984

有什么问题?

1 个答案:

答案 0 :(得分:-1)

df.groupby('Year').count().plot(kind='bar') 有三个格式说明符,只有两个参数,所以打印的第三个值是未定义的。

要查看值的地址,您需要printf()取消引用,然后*才能获取地址。

以下是一个固定的例子:

&