问题标签 [dangling-pointer]
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.
objective-c - Zoombie vs nil 对象
在目标 C 中,我们可以向nil
对象发送消息。
Zoombie(悬空指针)对象是指向其内存已释放的对象的对象。即不指向任何有效的内存位置。
在这种情况下,引用不持有零,而是无效的地址。
这是崩溃的原因吗?
如果我们在这种情况下尝试向已释放的对象发送消息,我们的程序也会崩溃,因为 over object 可能不是 nil 并且可能具有无效的内存地址。这就是为什么对于NON - ARC,在某些情况下我们设置 obj = nil 以及在发送发布消息后**dealloc()**
我清楚这个概念吗?
谢谢,
c++ - 在整数指针与字符指针的情况下悬空指针
我试图了解悬空指针在 C++ 中是如何工作的。
此代码的输出是 -
警告:
输出:
10
有人可以解释为什么即使返回的指针指向的指针超出范围,函数i
中的值也会打印出来。main()
i
以及为什么str
没有打印出来的值。
Isint*
和char*
在功能范围方面被分开处理。
此外,在smart_pointers
此处使用是否会以任何形式提供帮助?
c++ - 在 C++ 中创建包含指针的项目的链表
我的代码有一点问题。实际上,我无法理解为什么在考虑插入列表时,要插入的最后一个元素在整个列表中,根据我的算法这是不可能的。所以我创建了 04 个课程:学生、笔记、课程、事项。我在我的文件 data.h things_notes 和 node 中创建了两个结构:
在我的 data.c 文件中,我创建了 insert_ () 函数:
在 main.c 文件中,我调用函数 insert_ :
您会意识到这些项目不在预期的列表中。事实上,列表的顶部无处不在。什么建议我,因为我还没有找到任何解决这个问题的方法
ios - 在 CI::GLContext::init() 处崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS
在我们使用XCode 9构建后,开始在 Crashlytics 上看到此崩溃,并且所有崩溃都发生在 iOS 11 设备上(尽管今天可能大多数人都在使用 iOS 11)
一些可能导致此崩溃的代码片段:
任何关于正在发生的事情或调试技巧的想法都会非常感激!
c - 出于演示目的,如何打印悬空指针?
我试图向某人解释为什么他们有一个悬空指针以及 free 的实际工作方式(并且指针是值,因此是按值传递的),但为此我认为我需要一种打印指针的方法t “不确定”(与 的情况一样printf("%p", ptr)
)。
memcpy 能解决问题吗?
memory-management - Is there an idiomatic way to drop early in Rust?
In Chapter 4 of The Rust Programming Language, the drop
function is introduced as being implicitly called at the end of any scope on all the variables that were allocated within that scope. This solves the usual alloc/dealloc problems.
I can imagine wanting to drop earlier in some situations though. This question explains how to explicitly force a drop, and it's also possible to force deallocation early through the declaration of an inner scope:
However, the explicit call to drop seems awkward, since one of the purposes of the ownership system is to avoid explicit, error prone, deallocation by the programmer. The inner scope solution seems more elegant, but also can require mutation that would otherwise be unnecessary (as shown in the example).
Is there more idiomatic way to drop early than either of these? Is there a general agreement about which approach is better, or when each should be used?
c++ - const 引用作为类的成员不一致
如果创建一个对临时对象的 const 引用,它的寿命就会延长,就像引用在堆栈中的位置一样。这是该语言的一个很好的特性,尽管它有时会像其他规则的例外一样出现。 https://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/
但是,当 const 引用是类成员的一部分时,这不起作用。这是语言不一致吗?
示例代码:
是否有一种解决方法可以使其工作或至少表现得更一致?
我发现这在现在的一些情况下是一个限制因素。例如,List using with references,在用作成员时更改行为和https://stackoverflow.com/a/51878764/225186
EDIT1:在其他类似问题的答案中提到,问题在于构造函数采用了const&
规则不适用的地方。然而,一个完美的前锋仍然失败。在这种情况下,要么语言的不一致更加明显,要么完美的前锋不那么完美。
EDIT2:声明single const& s{f(3)};
仍然无济于事。但是,将常量“移动”到结构会有所帮助。
因此,将常量转移到整个结构也许是一种好习惯。
我仍然认为参考成员在语言中的行为很奇怪。https://www.youtube.com/watch?v=uYDt1gCDxhM
EDIT3:正如@Oliv 提到的,如果使用聚合初始化,情况会有所改善。然而,这是相当有限的。
c - 在这种情况下了解悬空指针行为
我有一个指针,默认情况下它带有NULL然后它等待某个事件并在事件发生时获取一个值,稍后我将指针释放到其他地方但即使在释放指针之后我也没有将其设为 NULL所以它仍然保持引用相同的内存位置,我知道下一个 malloc 调用可能会将该内存块分配给其他一些内存请求!
编辑:我已经知道它不是我们应该如何做的,我不能指望保留与现在可能用于其他东西相同的值,但我想知道的是为什么只有一个特定的值p被我看到了!
这个值:0xFF00000000是否呈现任何特殊含义?
c++ - C++ 返回一个 std::string &
上面的功能显然是不安全的。
以下是另一个版本。
我有一些问题:
第二个版本的编译器(gcc)没有给我任何警告。安全吗?我只是认为编译器(或什么?)会创建一个临时变量来保存表达式的返回std::to_string(vlu) + "something"
。所以第二个版本也是不安全的。我对吗?
swift - 如何在 Swift 中演示僵尸对象?
我已阅读如何在 Xcode Instruments 中演示内存泄漏和僵尸对象?但这是针对objective-c的。这些步骤不适用。
通过阅读here,我了解到僵尸是以下对象:
- 解除分配
- 但是某些指针仍在尝试指向它们并向它们发送消息。
不完全确定这与访问已释放的对象有何不同。
我的意思是在 Swift 中你可以这样做:
人被释放了吗?是的!
我们是否试图指出它?是的!
那么有人可以分享导致创建悬空指针的最常见错误吗?