问题标签 [pointers]

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 投票
5 回答
29253 浏览

c - 如何在 C 中声明一组常量函数指针?

我需要声明一个指向函数的指针数组,如下所示:

但是,我希望将数组声明为常量——数组中的数据和指向数据的指针。不幸的是,我不记得在哪里放置 const 关键字。

我假设实际的指针 MESSAGE_HANDLERS 在这种情况下已经是常量,因为它被声明为一个数组。另一方面,如果数组中的函数指针按所示声明,它不能在运行时更改吗?

0 投票
9 回答
1052 浏览

c++ - 如何在 PC/Visual C++ 上找出指针是否在堆栈上

[这是专门针对 PC/Visual C++ 的(尽管任何其他答案都会很有启发性:))]

如何判断指针是否来自堆栈中的对象?例如:

所以只有第二个断言(pB)应该跳闸。我正在考虑使用一些内联汇编来确定它是否在 SS 段寄存器或类似的东西中。有谁知道是否有任何内置功能,或者一个简单的方法来做到这一点?

谢谢!钢筋混凝土

0 投票
7 回答
2890 浏览

c# - 从头开始实现树

我正在尝试通过从头开始实现树来了解树。在这种情况下,我想用 C# Java 或 C++ 来做。(不使用内置方法)

所以每个节点都会存储一个字符,每个节点最多有 26 个节点。

我将使用什么数据结构来包含指向每个节点的指针?

基本上我正在尝试从头开始实现基数树。

谢谢,

0 投票
4 回答
582 浏览

c - C 指针混淆

我想在内存中存储一​​个字符串并稍后读取:

尽管 B 行和 D 行显示相同的地址,但 C 行中的 printf 因分段错误而失败。我错过了什么?

任何帮助将不胜感激!

0 投票
2 回答
1098 浏览

c++ - 通过指针访问二维(或三维)数组

当你有这样的数组时:

你做:

这是它的工作方式吗?

我不确定并且有一些代码取决于它是否有效。

0 投票
4 回答
6124 浏览

c - ANSI C: Assigning arrays and pointers to arrays

The following is a simplified version of what I'm trying to do, because I'm sure you don't want to wade through an entire set of structs and function prototypes for a particle system.

In essence, as the comment shows, I get a compile error. I've tried this several different ways, even using "float material[4][4]" in the Emitter struct and the signature of createEmitter. However, then later on when I try to copy values into a particle for modificaitons using:

I get another type mismatch when copying, even though everything is declared as type float[4][4]. In essence, I want to get a 4x4 array out of an array of 4x4 arrays, keep note of it in the emitter struct, then copy it into the particle struct. But I only want to actually copy the values one time.

0 投票
4 回答
2466 浏览

perl - 如何使用 Win32:API 将指针传递给 DLL?

我正在尝试将 3 个指针传递给 DLL 函数。我有:

DLL 定义为void dllfunction(int* a, char* str, int* len);DLL 将修改三个指针所指向的所有变量。

但是,当我运行它时,我会出现段错误。Win32::API的文档指定我应该使用实际变量名而不是 Perl 变量引用。谁能告诉我我错过了什么?谢谢。

*更多信息:

printf()在DLL中添加了打印出三个指针的地址,并printf在Perl中打印出三个变量的引用。我得到以下信息

DLL:代码 = 0x10107458 错误 = 0x10046b50 str = 0x10107460

Perl:代码 = 0x101311b8 错误 = 0x101312a8 str = 0x10131230

知道为什么 DLL 得到错误的地址吗?

****更多信息

经过多次调试,我发现从 DLL 函数返回时会发生这种情况。我添加了 printf("done\n"); 作为这个 DLL 函数的最后一行,它确实输出,然后程序段错误。我猜它发生在 Win32::API 中?有没有人经历过这个?

此外,我可以从 DLL 访问所有三个变量的初始变量。所以指针是正确传递的,但由于某种原因,它在从 DLL 返回时会导致段错误。尝试将新数据复制到 Perl 变量中时可能会出现段错误?

0 投票
2 回答
1073 浏览

objective-c - 在objective-c中,如何区分类和类的实例?

假设我在objective-c中有一个通用指针。这个指针可以是一个Class对象,也可以是那个类的一个实例。有什么办法可以区分这两者吗?

例子:

我将如何编写is_this_a_Class函数以使其返回正确的bool值?

0 投票
4 回答
555 浏览

language-agnostic - 你有没有遇到过三级间接的任何原因?

只需浏览我最喜欢的一本书(Ellen Ullman 的 The Bug),就会发现一个程序员在三个间接级别上遇到另一个程序员:

我得到了双重间接的想法——一种将指针传递给函数的方法,并允许它指向在函数中创建的对象。

但是你有没有遇到过使用三个(或更多)间接级别的理由?

0 投票
4 回答
582 浏览

c++ - 指针值 0x7c7c7c7c 的特殊含义

在调试 Linux 应用程序时,我发现了一个带有可疑值 0x7c7c7c7c 的指针。该特定值是否表明了什么?

(我问是因为我从我的 MSVC 时代就知道,在调试版本中,0xcdcdcdcd 或 0xdddddddd 之类的值将存储到未初始化、已释放或以其他方式无效的堆块中。有些人在未初始化的内存中使用 0xdeadbeef 或 0xcafebabe 之类的魔法值。我猜 libc 或其他地方的某些东西使用 0x7c7c7c7c 作为魔法值,但我找不到它的记录。)