问题标签 [memory-address]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory-management - 线性地址和物理地址
什么是线性地址?它与物理地址有何不同?
x86-16 - 8086中的物理地址是如何产生的?
在8086架构中,内存空间大小为 1 MiB,并被划分为每个高达 64 KiB 的逻辑段。
即它有20 个地址线,因此使用以下方法:
将数据段寄存器左移 4 位,然后添加到偏移寄存器
我的问题是:尽管所有寄存器都只有 16 位,但我们如何进行移位操作
c - 为什么main函数的参数地址每次都变?
我写了一个测试,打印 argv[0] 的内容——主函数参数的地址如下:
我在 Windows 7 上使用 Visual Studio 2008 编译了该程序。
然后我执行程序 1000 次,将结果输出到文件中。结果,argv[0] 的地址发生了变化,但是,有些地址是相同的,并且重复了大约 10 次。
为什么main函数的参数地址每次都变?
c++ - 为什么占用临时地址是非法的?
我知道下面写的代码是非法的
原因是我们不允许获取临时对象的地址。但我的问题是为什么?
让我们考虑以下代码
这里接受的答案提到
“通常编译器将临时和副本视为两个对象,它们位于完全相同的内存位置并避免复制。”
根据该声明,可以得出结论,临时存在于某个内存位置(因此其地址可能已被占用)并且编译器决定通过在存在临时的相同位置创建就地对象来消除临时对象.
这是否与不能获取临时地址的事实相矛盾?
我还想知道如何实现返回值优化。有人可以提供与 RVO 实施相关的链接或文章吗?
c++ - 迭代器问题继续
我现在已经对这段代码进行了大量的错误检查,并确保我输出了“正确”的东西来概述问题。迭代器根本不指向列表,而是另一组包含正确数据的地址。
我有两个问题:
1 = 给定 couts 的形式,我是否输出了正确的项目来调查为什么这个循环没有退出;
2 = if(1) 那么是什么产生了这个输出,你有什么建议可以进一步了解我的指针知识吗(我之前已经多次使用这种 for 循环格式,这从未发生过;
/问题
代码 :
这是输出:
非常感谢。
c - 关于 C 中可变内存地址的观察
我有一个问题而不是问题(女巫可能会出现记忆问题)..我写了这个简单的程序:
如您所见(如果您使用 C 开发),此程序输入 2 个 int 变量,然后将它们与 multi 函数相乘:
得到结果后,它会显示每个变量在内存中的位置(、c
和x
)。y
z
我已经测试了这个简单的例子,这些是结果(在我的例子中):
如您所见,在 main 函数中声明的三个变量,x
具有封闭的内存地址 (22936xx),在 multi 函数中声明的变量 c 具有不同的地址 (22935xx)。y
z
查看x
,y
和z
变量,我们可以看到每两个变量(即 : &x-&y=4
, &y-&z=4
)之间有 4 个字节的差异。
我的问题是,为什么每两个变量之间的差异等于 4?
memory-address - 内存寻址
例如,我们在 Windows XP 平台上,我们在 ollydbg 上有程序 A,我们查看指令 x。它的地址为0x11111111(例如)。如果我使用程序A并在具有相同平台的另一台计算机上的ollydbg中运行指令x将具有相同的地址0x11111111?所以我的问题是:每次程序 A 运行时内存地址都会改变吗?还是它们在不同的计算机或平台上发生了变化?
c++ - 如何在正在运行的进程中找到函数指针的地址?
如何在正在运行的进程中找到函数指针的地址?
我目前在 Windows XP 下使用 C++,并希望找到一个函数的地址。有人可以帮我吗?如果可以,请给我一个例子。谢谢。
c++ - C++ 双地址运算符?(&&)
我正在阅读 STL 源代码,但我不知道&&
地址运算符应该做什么。这是来自的代码示例stl_vector.h
:
“地址”是否有意义?为什么它有两个地址运算符而不是一个?
java - 是否可以在java中的变量堆上获取地址?
假设我有这个变量:
我想知道 var 在堆上的位置(按地址,如 0x08 等),并将地址打印出来。
是否可以?