Tag: 内存地址

为什么char数据的地址不显示?

class Address { int i ; char b; string c; public: void showMap ( void ) ; }; void Address :: showMap ( void ) { cout << "address of int :" << &i << endl ; cout << "address of char :" << &b << endl ; cout << "address of string :" << […]

打印Pythonvariables的内存地址

如何在Python 2.7中打印variables的内存地址? 我知道id()返回variables或对象的“id”,但是这不会返回我期待看到的内存地址的预期0x3357e182样式。 我想要做一些类似print &x事情,例如x是一个C ++ intvariables。 我怎样才能在Python中做到这一点?

我怎样才能得到一个JavaScriptvariables的内存地址?

是否有可能find一个JavaScriptvariables的内存地址? JavaScript代码是(embedded到)一个正常应用程序的一部分,在这个应用程序中,JavaScript被用作C ++的前端,并且不会在浏览器上运行。 使用的JavaScript实现是SpiderMonkey。

是否有可能将一个标签的地址存储在一个variables,并使用goto跳转到它?

我知道每个人都讨厌gotos。 在我的代码中,由于我已经考虑和适应的原因,他们提供了一个有效的解决scheme(即我不寻找“不这样做”作为答案,我理解你的保留,并理解为什么我使用它们无论如何)。 到目前为止,他们已经很棒了,但是我想要扩展function的方式需要我基本上能够存储指向标签的指针,然后再去找它们。 如果这个代码工作,它将代表我需要的functiontypes。 但它不起作用,30分钟的谷歌search没有透露任何东西。 有没有人有任何想法? int main (void) { int i=1; void* the_label_pointer; the_label: the_label_pointer = &the_label; if( i– ) goto *the_label_pointer; return 0; }

Python中的非赋值string如何在内存中有一个地址?

谁可以给我解释一下这个? 所以我一直在使用Python中的id()命令,碰到这个: >>> id('cat') 5181152 >>> a = 'cat' >>> b = 'cat' >>> id(a) 5181152 >>> id(b) 5181152 除了一个部分,这对我来说是有意义的:string'cat'在我将其分配给一个variables之前在内存中有一个地址。 我可能只是不明白如何内存寻址的作品,但有人可以解释这个给我,或者至less告诉我,我应该阅读内存寻址? 所以这一切都很好,但这使我更加困惑: >>> a = a[0:2]+'t' >>> a 'cat' >>> id(a) 39964224 >>> id('cat') 5181152 这让我感到奇怪,因为'猫'是一个地址为5181152的string,但是新的地址是不同的。 所以,如果在内存中有两个“猫”string,为什么不为id('cat')打印两个地址? 我最后的想法是,连接与地址的变化有关,所以我尝试了这个: >>> id(b[0:2]+'t') 39921024 >>> b = b[0:2]+'t' >>> b 'cat' >>> id(b) 40000896 我会预测的ID是相同的,但事实并非如此。 思考?

为什么Linux上的string文字的内存地址与其他string的内存地址不同?

我注意到string文字在内存中的地址与其他常量和variables(Linux OS)非常不同:它们有许多前导零(未打印)。 例: const char *h = "Hi"; int i = 1; printf ("%p\n", (void *) h); printf ("%p\n", (void *) &i); 输出: 0x400634 0x7fffc1ef1a4c 我知道他们存储在可执行文件的.rodata部分。 有没有一种特殊的方式操作系统后来处理它,所以文字最终在一个特殊的内存区域(前导零)? 这个内存位置有没有什么优点,或者有什么特别的地方呢?

打印一个指针包含在C中的地址

我想做一些看起来相当简单的事情。 我得到的结果,但问题是,我没有办法知道如果结果是正确的。 我在C工作,我有两个指针; 我想打印指针的内容。 我不想取消引用指针来获取指向的值,我只想要指针存储的地址。 我写了下面的代码,我需要知道的是,如果它是正确的,如果不是,我该如何纠正它。 /* item one is a parameter and it comes in as: const void* item1 */ const Emp* emp1 = (const Emp*) item1; printf("\n comp1-> emp1 = %p; item1 = %p \n", emp1, item1 ); 虽然我发布这个(而这是重要的,这是正确的)是我最终需要做一个指针指针。 那是: const Emp** emp1 = (const Emp**) item1;

如果不是内存地址,C指针究竟是什么?

关于C的信誉来源,讨论&运算符后给出以下信息: ……有些遗憾的是,这个术语[地址]仍然存在,因为它混淆了那些不知道地址是关于什么的人,并且误导了那些做了这些事情的人:把指针看作是地址,通常会导致悲伤。 。 我曾经读过的其他材料(从同样有名的来源,我会说)总是毫不掩饰地指向指针, &运算符提供内存地址。 我很想继续寻找事情的真相,但是当信誉良好的消息来源不同意的时候,这是有点困难的。 现在我有点困惑 – 什么是一个指针,那么,如果不是一个内存地址? PS 作者后来说: 我会继续使用“地址”这个词,因为发明一个不同的地方 会更糟。

C ++双地址运算符? (&&)

我正在阅读STL源代码,我不知道什么&&地址运营商应该做的。 这是一个来自stl_vector.h的代码示例: vector& operator=(vector&& __x) // <– Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } “地址地址”是否有意义? 为什么它有两个地址运算符而不是一个?

访问对象内存地址

当你在Python中调用object.__repr__()方法时,你会得到这样的结果: < main。testing对象在0x2aba1c0cf890> 如果你重载__repr__() ,有没有办法获得内存地址的保留,否则调用super(Class, obj).__repr__()并将其重新排列?