问题标签 [dereference]

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 投票
6 回答
225108 浏览

c - C 编程:取消引用指向不完整类型错误的指针

我有一个结构定义为:

以及指向这些结构的指针数组:

在我的代码中,我正在创建一个指向结构的指针并设置其成员,并将其添加到数组中:

我收到以下错误:

错误:取消引用指向不完整类型的指针

每当我尝试访问里面的成员时newFile。我究竟做错了什么?

0 投票
7 回答
247496 浏览

c - 取消引用指向不完整类型的指针

我已经看到了很多关于此的问题,但我将在没有特定代码的情况下以不同的方式提出问题。有没有办法轻松确定导致类型不完整的原因?在我的情况下,我使用的是其他人的代码,我完全确定我没有正确的标题,但是(因为计算机比人类的眼球更快更好地完成这些事情)有没有办法让编译器说, “嘿,你认为你在第 34 行输入了 X,但实际上没有。” 错误本身仅在您分配时才出现,这不是很有帮助。

0 投票
3 回答
255 浏览

c - c - 取消引用问题

我已经简化了一个我一直试图隔离问题的问题,但它没有帮助。

我有一个二维字符数组来表示内存。我想将对内存模拟的引用传递给函数。在测试内存内容的函数中,我只想遍历内存并打印出每一行的内容。

该程序打印出第一行,然后出现段错误。

我的程序如下:

这给了我输出:

如果我更改程序并通过取消引用 memory_ref 在函数中创建内存的本地版本,那么我会得到正确的输出:

所以:

给我以下输出:

这就是我想要的,但是制作内存的本地版本是没有用的,因为我需要能够从函数中更改原始内存的值,而这只能通过取消引用指向原始 2d char 数组的指针来实现。

我不明白为什么我应该在第二轮出现段错误,我将不胜感激任何建议。

非常感谢

0 投票
1 回答
3887 浏览

c++ - 向量迭代器在运行时不能在向量上取消引用*>*>

我有这个析构函数在运行时创建错误“向量迭代器不可取消引用”。

gridMatrix 是一个 std::vector<std::vector<std::vector<AtomsCell< Atom<T> * > * > * > * >

我添加了 typename 和 typedef 但我仍然有错误。

我认为 vect of vect* of vect* 的这个想法会使用 boost::multi_array 我认为,但我仍然想了解这是错误的。

如果有人想要创建错误的完整代码,我很乐意提供,但我认为我们不能在论坛中附加文件。但它仍然不是很大,所以如果你想要它,我可以在这里复制过去。

谢谢

0 投票
3 回答
3760 浏览

c++ - 为什么取消引用称为取消引用的指针?

为什么解引用称为解引用?

我只是在正确地学习指针,我想知道为什么取消引用被称为。它让我感到困惑,因为听起来您正在删除一个引用,而不是通过指向目标的指针。

谁能解释为什么它被称为这个?

对我来说,像destination 或pointed_to_value 这样的东西会更有意义。

0 投票
3 回答
110 浏览

c++ - 通过将成员函数的本地存储分配移动到其类是否可以获得性能?

假设我有以下 C++ 类:

函数 bar() 将在循环中被调用数百万次。显然,每次调用它时,都必须分配变量 a..f。通过使变量 a..f 成为 Foo 类的成员并在函数的入口点初始化它们,我会获得任何性能吗?另一方面,a..f 的值将通过 this-> 取消引用,所以我想知道这是否实际上可能导致性能下降。通过指针访问值是否有任何开销?谢谢!

0 投票
1 回答
422 浏览

perl - 从参数中取消引用哈希

此代码有效:

这个没有:

还有这个:

为什么?

==============================

再来一次准确地说:

换句话说,第 16 行 - 它没有。

0 投票
4 回答
2081 浏览

perl - 在不创建本地副本的情况下取消引用哈希

我下面第 9 行的代码创建了哈希的本地副本。对 %d 的任何更改都不会提供对全局 %h 变量的更改(第 5 行)。我必须使用参考(第 8 行)来提供对 %h 的更改。

有没有办法在不创建本地副本的情况下取消引用子中的哈希?我在问,因为我有许多引用的复杂记录,并且通过取消引用在它周围导航会容易得多。

----------------

感谢您的回复。

问题是我可以在 sub 中对 %h 进行某种“别名/绑定”吗?我想用 %d 更改子中 %h 的上下文。每当我创建 %d 时,他都会制作 %h 的本地副本 - 有什么办法可以避免这种情况,还是我必须一直使用引用?

----------------

再来一次 :) 我知道 $href 的工作原理。我阅读了教程/手册/文档等。我没有在那里找到答案 - 我认为这是不可能的,因为它没有写在那里,但谁知道。

我想完成这样的行为:

这相当于:

现在如何在 %d 的帮助下做到这一点 - 这真的可能吗?

我应该在 XXXXXXXXX 下放置什么来指向 %h 而不创建本地副本?

0 投票
4 回答
2672 浏览

c - C指针初始化和取消引用,这里有什么问题?

这应该非常简单,但我不确定编译器为什么在这里抱怨。

收到以下投诉:

foo.c:在函数'main'中:
foo.c:6:警告:初始化使指针从整数而不进行强制转换

我只想打印指针 n 引用的值。我在 printf() 语句中取消引用它,我得到一个分段错误。用 gcc -o foo foo.c 编译它。

0 投票
6 回答
673 浏览

c++ - C++ 跟踪原始类型值变化

我有一个带有奇怪错误的复杂程序,一些 int 值意外降至零。

所以我想跟踪这个内置类型值,然后我可以轻松调试。

为此,我创建了 ValueWatcher 模板类,因此我可以跟踪值的几乎变化,除非 ValueWatcher 取消引用。(我制作了这些取消引用运算符,因为程序需要 int *, &)

问题是,当客户端代码需要 ValueWatcher 的 int & 或 int * 时, - 它无论如何都可以提供 int & 或 int * 但是 - int * 或 & 不能保存 ValueWatcher 实例,因此无法再跟踪。

有没有办法解决这个问题?我认为它可以通过返回引用或指针类实例来解决,而不仅仅是返回 & 或 * 的内置类型。但我不知道该怎么做。

另外-我不能用调试器运行这个程序。该问题仅在真实环境中发生,并且很难重现。