问题标签 [pointer-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.

0 投票
2 回答
1828 浏览

c - GetProcAddress 奇怪的返回地址

有人解释了为什么下一个代码在 ntdll.dll 中返回一个指针?

PS:如果调用 kernel32 的导出表指向的函数,会抛出断点。

0 投票
3 回答
9709 浏览

c - 将结构中的指针分配给变量

该程序应该创建一个动态内存向量。我很确定我正确使用了 malloc。我真正的问题是一些带有指针的语法,特别是结构内的指针。

我正在尝试访问结构内的 int 指针的地址,以便可以将其分配给另一个指针

我给定的结构是:

我试图开始工作的功能是:

这应该是项目指针的地址减去列表中的项目数,并将所需项目的索引添加到 p 的地址。然后我返回 p 的地址。

我有一种强烈的感觉,第 (2) 行不是我需要的语法。

根据我到目前为止所尝试的内容,我的程序要么在调用 getVector 时崩溃,要么输出(我的最佳猜测)一些内存位置。

这是添加向量的代码:

我不觉得我的问题在这里,但如果是的话,我对 A 线和 B 线有些怀疑......

任何见解将不胜感激,谢谢!

0 投票
1 回答
444 浏览

pointers - 64位指针的问题

我正在使用 Windows 7,并且我的程序有 64 位和 32 位版本。32 位版本工作得很好,但是,我在运行时遇到了 64 位版本的问题。我创建了一个列表视图项,并正在用我的信息填充列。它们都在打印,但有一个打印不正确。这是它正在打印的内容(我为缺少图片而道歉,但作为新成员我无法发布图片):

卡车

ÍÍÍÍHRZ141

ÍÍÍÍHRZ152

它似乎在我真正希望它显示的信息之前放置了 4 个空字符。经进一步检查,该地址似乎不正确。这是发生错误的代码的一部分:

这是一个临时修复,因为我所有的卡车名称都以字符 H 开头。 plvdi->item.psz text 是列表视图项的文本显示,而 audit->Truck 是一个 char[]。它应该很简单:

但这似乎不起作用。它给我留下了同样的错误。运行时,地址 plvdi->item.pszText 比 audit->Truck 的地址少 4 个字节,在赋值语句之后(while 语句上的断点),我认为这是导致 4 个空字符的原因。我只是不确定如何在没有像我发布的那样的解决方法的情况下解决这个问题,为什么会发生这种情况,以及为什么只在 64 位解决方案中。预先感谢您在此问题上提供的任何帮助。

编辑:从我在程序中发现的其他类似问题来看,它似乎与指针有关。在选择向量之后出现的审计类中的所有内容都出现了问题,并且似乎偏离了 4 个字节。在另一堂课中,我发现指向审计的指针之后的一切都失败了,而且我也遇到了一些字符串问题(从技术上讲,它们是指向 char 数组的指针)。当我将带有指针的元素移动到头文件中类的末尾时,一切似乎又正常了。知道字符串、向量或其他类似结构是否具有依赖于 32 位或 64 位系统的指针吗?

0 投票
2 回答
223 浏览

c++ - 单个结构数据成员的奇怪指针地址

我今天观察到一些奇怪的行为,代码如下:

编码 :

问题:

1.)我唯一的问题是为什么cout theAddress上面的代码会出现一些奇怪的值?

2.)为什么我仍然可以c通过取消引用具有奇怪地址的指针来更改成员的值?

谢谢你。

0 投票
1 回答
382 浏览

ios - iOS:设置属性

当我使用当前保留的 NSArray 中的对象设置属性时,它会只存储指针(轻量级),还是将内容复制到属性中?

据我所知,它似乎只会分配指针,但我不确定。

此外,在什么情况下会使用 *pointer = *otherPointer 或 set 方法(例如 setDelegate)复制值,而不是仅传递指针(如果有)。它不应该总是只传递指针地址吗?

0 投票
5 回答
2217 浏览

c - 连续声明的变量的内存地址顺序总是降序吗?

为什么返回的指针地址的十六进制值总是按降序排列?例如这里int a是之前声明int d的,所以它的地址总是大于d,并且相同&b&e&c&f我想知道这是一个固定的行为还是这个编译器依赖?我正在使用gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-1

输出:

PS:我是c新手

0 投票
3 回答
9160 浏览

c - 转到 C 中的特定地址

如何 JMP 到 C 中的特定地址?

我想用

这不起作用,还有其他方法可以更改程序计数器的地址吗?

0 投票
1 回答
222 浏览

pointers - 为什么指针给出两个不同的地址?

我有这个程序。我有一些疑问。您可以在编译器中运行它。我在 linux 中使用 gcc 编译器

在此代码add中,占用每个数组元素的地址值,并通过循环一一打印该地址。但是 给出的地址值add不等于给出的地址值,&(a[i][j])而这两个给出的值相等。也就是说,对于每个数组元素*add都等于。*(&(a[i][j]))有人可以解释一下为什么会这样吗?

我打印了每个元素的大小,以确认内存中数据排列的顺序。由于我的编译器是基于 32 位的,它以 4 位的间隔打印地址,以防add&(a[i][j]).

最后我打印数组的初始地址。这给出了与 相同的地址&a[0][0]。所以问题是哪种方法是正确的,add=&(a[i][j]; 或直接输出a[i][j]

0 投票
1 回答
789 浏览

go - 如何获取地址以使用反射字段?

我得到了a.two的地址。
我想获得相同的地址以使用反射字段。

我试图调用 UnsafeAddr, Addr, ... 但是,我无法获得期望值。

0 投票
1 回答
97 浏览

c - 将地址添加到指针数组 C

我必须编写一个函数,在指针数组的末尾添加一个地址。这是我所做的。我想知道我做得对不对,如果不对,请纠正我。