问题标签 [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.
c - 如何在 C 中声明一组常量函数指针?
我需要声明一个指向函数的指针数组,如下所示:
但是,我希望将数组声明为常量——数组中的数据和指向数据的指针。不幸的是,我不记得在哪里放置 const 关键字。
我假设实际的指针 MESSAGE_HANDLERS 在这种情况下已经是常量,因为它被声明为一个数组。另一方面,如果数组中的函数指针按所示声明,它不能在运行时更改吗?
c++ - 如何在 PC/Visual C++ 上找出指针是否在堆栈上
[这是专门针对 PC/Visual C++ 的(尽管任何其他答案都会很有启发性:))]
如何判断指针是否来自堆栈中的对象?例如:
所以只有第二个断言(pB)应该跳闸。我正在考虑使用一些内联汇编来确定它是否在 SS 段寄存器或类似的东西中。有谁知道是否有任何内置功能,或者一个简单的方法来做到这一点?
谢谢!钢筋混凝土
c# - 从头开始实现树
我正在尝试通过从头开始实现树来了解树。在这种情况下,我想用 C# Java 或 C++ 来做。(不使用内置方法)
所以每个节点都会存储一个字符,每个节点最多有 26 个节点。
我将使用什么数据结构来包含指向每个节点的指针?
基本上我正在尝试从头开始实现基数树。
谢谢,
c - C 指针混淆
我想在内存中存储一个字符串并稍后读取:
尽管 B 行和 D 行显示相同的地址,但 C 行中的 printf 因分段错误而失败。我错过了什么?
任何帮助将不胜感激!
c++ - 通过指针访问二维(或三维)数组
当你有这样的数组时:
你做:
这是它的工作方式吗?
我不确定并且有一些代码取决于它是否有效。
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.
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 变量中时可能会出现段错误?
objective-c - 在objective-c中,如何区分类和类的实例?
假设我在objective-c中有一个通用指针。这个指针可以是一个Class
对象,也可以是那个类的一个实例。有什么办法可以区分这两者吗?
例子:
我将如何编写
函数以使其返回正确的is_this_a_Class
bool
值?
language-agnostic - 你有没有遇到过三级间接的任何原因?
只需浏览我最喜欢的一本书(Ellen Ullman 的 The Bug),就会发现一个程序员在三个间接级别上遇到另一个程序员:
我得到了双重间接的想法——一种将指针传递给函数的方法,并允许它指向在函数中创建的对象。
但是你有没有遇到过使用三个(或更多)间接级别的理由?
c++ - 指针值 0x7c7c7c7c 的特殊含义
在调试 Linux 应用程序时,我发现了一个带有可疑值 0x7c7c7c7c 的指针。该特定值是否表明了什么?
(我问是因为我从我的 MSVC 时代就知道,在调试版本中,0xcdcdcdcd 或 0xdddddddd 之类的值将存储到未初始化、已释放或以其他方式无效的堆块中。有些人在未初始化的内存中使用 0xdeadbeef 或 0xcafebabe 之类的魔法值。我猜 libc 或其他地方的某些东西使用 0x7c7c7c7c 作为魔法值,但我找不到它的记录。)