destroy 相关问题

在面向对象的语言中,对象需要在创建后销毁以释放内存。然而,破坏可以具有更广泛的含义。有时,销毁意味着必须释放资源或必须删除文件。

作为函数参数传递时在哪里销毁TextEditingController?

有关于如何正确销毁 TextEditingController 的文档,但这些文档对我的情况没有帮助。我的项目中有重复的代码,所以我想通过

回答 1 投票 0

如何有效地销毁Java Servlet中的“会话”?

我正在使用的 Servlet 有一个可变会话。 我已经尝试过 session.invalidate();,这似乎已经破坏了会话,但是当我像这样进行重定向时 response.sendRedirect("restanes.jsp"); ,它...

回答 3 投票 0

无法销毁文章 |无法从动作控制器更改为销毁

我对 Ruby on Rails 非常陌生,我正在学习本教程 https://guides.rubyonrails.org/getting_started.html#using-partials-to-share-view-code 现在我在“7.5删除文章”...

回答 1 投票 0

为什么我不能“销毁”“自有”的CRTP向量,但仍然可以释放其地址?

摘自 Björn Fahller 在 2023 年 CPP 会议上的闪电演讲。 => youtu.be/LKKmPAQFNgE 这是关于如何在不接触 new 甚至 malloc 的情况下强制 c++ 泄漏内存。 结构 V:向量 摘自 Björn Fahller 在 2023 年 CPP 会议上的闪电演讲。=> youtu.be/LKKmPAQFNgE 这是关于如何在不接触 new 甚至 malloc 的情况下强制 C++ 泄漏内存。 struct V : vector<V> {}; auto v = V{}; v.emplace_back(); v.swap(v.front()); // v representation becomes uint64_t[3]{ 0x0, 0x0, 0x0}, // so the vector allocation gets lost because no refs are left on the scope. 所以我想知道是否可以手动销毁它。 struct V : vector<V> {}; auto v = V{}; v.emplace_back(); v.emplace_back(); v.emplace_back(); v.emplace_back(); auto front = v.front(); v.swap(v.front()); using allocator = std::allocator<V>; using atraits = std::allocator_traits<allocator>; auto a = front.get_allocator(); atraits::destroy(a, &front + 1); // Ok atraits::destroy(a, &front + 2); // Ok atraits::destroy(a, &front + 3); // Ok // atraits::destroy(a, &front); // error SIGSEGV atraits::deallocate(a, &front, 4); // still seems Ok? 当尝试销毁拥有自己地址的 V 对象时,会发生SIGSEGV。 0x1796320 : 0x1796320 (alloc_begin_ptr) // It owns itself!!! 0x1796328 : 0x1796380 (one_pass_content_end_ptr) 0x1796330 : 0x1796380 (one_pass_alloc_end_ptr) 0x1796338 : 0x0 (alloc_begin_ptr) 0x1796340 : 0x0 (one_pass_content_end_ptr) 0x1796348 : 0x0 (one_pass_alloc_end_ptr) 0x1796350 : 0x0 (alloc_begin_ptr) 0x1796358 : 0x0 (one_pass_content_end_ptr) 0x1796360 : 0x0 (one_pass_alloc_end_ptr) 0x1796368 : 0x0 (alloc_begin_ptr) 0x1796370 : 0x0 (one_pass_content_end_ptr) 0x1796378 : 0x0 (one_pass_alloc_end_ptr) 所以我尝试将其移至堆栈。看起来效果不错。 struct V : vector<V> {}; auto v = V{}; v.emplace_back(); v.emplace_back(); v.emplace_back(); v.emplace_back(); auto front = v.front(); v.swap(v.front()); auto v2 = std::move(front); 没有任何对象拥有自己。 0x7ffc44d02b20 : 0x927320 (alloc_begin_ptr) // v2 on stack 0x7ffc44d02b28 : 0x927380 (one_pass_content_end_ptr) 0x7ffc44d02b30 : 0x927380 (one_pass_alloc_end_ptr) 0x927320 : 0x0 (alloc_begin_ptr) 0x927328 : 0x0 (one_pass_content_end_ptr) 0x927330 : 0x0 (one_pass_alloc_end_ptr) 0x927338 : 0x0 (alloc_begin_ptr) 0x927340 : 0x0 (one_pass_content_end_ptr) 0x927348 : 0x0 (one_pass_alloc_end_ptr) 0x927350 : 0x0 (alloc_begin_ptr) 0x927358 : 0x0 (one_pass_content_end_ptr) 0x927360 : 0x0 (one_pass_alloc_end_ptr) 0x927368 : 0x0 (alloc_begin_ptr) 0x927370 : 0x0 (one_pass_content_end_ptr) 0x927378 : 0x0 (one_pass_alloc_end_ptr) 为什么拥有自身的 allocator_traits::destroy() 上的 vector 会触发 SIGSEGV ? // atraits::destroy(a, &front); // error SIGSEGV 0x1796320 : 0x1796320 (alloc_begin_ptr) // It owns itself!!! 0x1796328 : 0x1796380 (one_pass_content_end_ptr) 0x1796330 : 0x1796380 (one_pass_alloc_end_ptr) [直播] (我假设这一行: auto front = v.front(); 是一个拼写错误,因为 v.front() 是您从中复制的默认构造的 V 对象。这意味着该线本质上是auto front = V{}。你的意思是auto& front = v.front()) &front + 1、&front + 2和&front + 3是指向空向量的指针,这些可以被销毁。 如果您试图破坏 &front 指向的内容,则这是具有 4 个元素的向量。最后三个元素是那些空向量,被销毁是没有问题的。 但 front 的第一个元素是 front 本身。这是未定义的行为,因为您将在已经被销毁的对象上调用析构函数,但实际上它会导致无限循环,因为它只会再次调用析构函数并递归地尝试销毁相同的向量(以及堆栈溢出,从而导致段错误)。 如果您只是释放它,则不会调用析构函数,因此不会出现无限循环。如果向量保存了分配内存的其他向量,则可能会泄漏内存,因为这些向量的析构函数也不会被调用。 正如您所尝试的那样,“修复”此问题的方法是打破“所有权”循环,例如将其移动到新向量(V{} = std::move(front) / V{}.swap(front))。

回答 1 投票 0

PHP 中的会话不会被销毁,cookie 也不会被删除

我有一个注销函数,它在 HTML 渲染之前被调用,它是: 函数注销() { $_SESSION = []; if (ini_get("session.use_cookies")) { $参数=

回答 1 投票 0

通过关系删除 has_many Ruby on Rails

我有一个 Ruby on Rails 应用程序 我通过 user_unit_assocs 拥有 has_many 单元和 has_many 用户的块。 该模型是这样定义的。 块类 < ActiveRecord::Base has_many :units, dep...

回答 1 投票 0

Vue 销毁可排序元素

总结 创建面板,并将图层添加到面板。当尝试删除图层时 面板中的最后一个图层被删除,而不是图层项目 选择销毁。 完整问题: 了解c...

回答 1 投票 0

如何在python中制作删除元素的按钮

我正在用python制作一个简单的任务管理器,但我想不出一种方法可以让按钮删除任务(如果制作了)。 我尝试创建一个删除项目的功能,但没有成功。佛...

回答 1 投票 0

CSS:如何消灭/剪辑下面的元素?标题

标题 #A { 位置:相对...</desc> <question vote="-2"> <pre><code>&lt;!DOCTYPE html&gt; &lt;html lang=&#34;en&#34;&gt; &lt;head&gt; &lt;meta charset=&#34;UTF-8&#34;&gt; &lt;title&gt;Title&lt;/title&gt; &lt;style&gt; #a { position: relative; } #a div { width: 100px; height: 100px; position: absolute; } #b { background-color: green; left: 0; top: 0; } #c { left: 20px; top: 20px; background-color: red; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;div id=&#34;a&#34;&gt; &lt;div id=&#34;b&#34;&gt;&lt;/div&gt; &lt;div id=&#34;c&#34;&gt;&lt;/div&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>在此示例中,有两个彼此重叠的矩形。红色的像素实际上是透明的,但应该删除绿色像素截取的像素。警告:将第二个设置为纯白色不会被接受为有效的解决方案 - 它实际上必须删除这些像素。</p> <p><a href="https://i.stack.imgur.com/r4FkP.png" target="_blank"><img src="https://cdn.imgupio.com/i/AWkuc3RhY2suaW1ndXIuY29tL3I0RmtQLnBuZw==" alt=""/></a></p> </question> <answer tick="false" vote="0"> <p>我不太清楚你的问题,但我认为你的答案是在CSS中的混合模式</p> <p>只需尝试以下 css 代码和其他混合模式属性</p> <pre><code>#a { position: relative; } #a div { width: 100px; height: 100px; position: absolute; } #b { background-color: green; left: 0; top: 0; z-index: 0; } #c { left: 20px; top: 20px; background-color: red; mix-blend-mode: multiply; } </code></pre> </answer> <answer tick="false" vote="0"> <p>使用面膜</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>#a { position: relative; } #a div { width: 100px; height: 100px; position: absolute; } #b { background-color: green; left: 0; top: 0; -webkit-mask: conic-gradient(from 90deg at 20px 20px,#0000 25%,#000 0) }</code></pre> <pre><code>&lt;div id=&#34;a&#34;&gt; &lt;div id=&#34;b&#34;&gt;&lt;/div&gt; &lt;div id=&#34;c&#34;&gt;&lt;/div&gt; &lt;/div&gt;</code></pre> </div> </div> <p></p> </answer> </body></html>

回答 0 投票 0

为什么当我尝试摧毁另一个游戏对象时,一个游戏对象可以工作,但相反却不起作用?

我想要一个游戏对象删除自身以及带有“Card”标签的不同游戏对象 该脚本附加到它们两者上,所以我希望它对两者都适用,但只有其中一个可以做到这一点。我用过这个

回答 2 投票 0

Laravel 模型中的 delete() 函数问题

我想使用 laravel 模型中的删除函数从类别中删除一条记录,但这个函数让我成为一个奇怪的查询,没有意义。所以,我得到了一个错误(sql约束失败)作为

回答 1 投票 0

图例显示 true 时 Chartjs 不渲染

我正在尝试使用chartjs(pie)在屏幕上显示一些数据。第一次加载时,屏幕工作正常,但是当尝试更新饼图时(使用创建它的相同代码),它......

回答 0 投票 0

蟒蛇 | TkInter |在 Tkinter GUI 中添加/删除按钮/行

我有一个带有选项菜单的 GUI,其中有一个数字列表 (1:8)。选择一个数字后,下方将填充等量的按钮。选择这些按钮后,旁边会出现一个标签...

回答 0 投票 0

Model.destroy({truncate:true}) 真的删除所有表记录吗?

它实际上是擦除表的所有行还是只是设置 deletedAt 标志并进行软删除? 用户.destroy({truncate:true}) .then(()=>User.findAll().catch(err=>{throw new Error(...

回答 0 投票 0

应用程序销毁时未调用 ApplicationAdapter 的 dispose() 方法

我正在使用 libgdx 开发多人游戏。我想在连接关闭之前处理向服务器发送一些注销信息。从我读过的 Libgdx 的 ApplicationAdapter 类的显示...

回答 0 投票 0

如何在 Godot 中创建计时器?

如何在 Godot 中创建一个计时器,它会在给定的时间后销毁脚本的对象?我希望在一段时间后从游戏中移除子弹以减少延迟。

回答 4 投票 0

有没有办法销毁存储在列表中的 Tkinter 对象?

我正在尝试在 Tkinter 中显示大量出现和消失的对象。我将它们存储在一个普通列表中,以便于访问并能够轻松地遍历它们。我也想要一些对象...

回答 1 投票 0

在自定义 Tkinter 中销毁旧窗口和创建新窗口时生成的错误消息

代码成功生成带有 2 个按钮的“my_main”窗口 - “单个”和“多个” 单击“多个”按钮时,代码成功销毁了“my_main”。 代码未能成功创建“my_multi”新

回答 0 投票 0

单击另一个按钮后中止/销毁 HTML5 音频流

如何编写以便在单击新按钮后从上一个按钮中止音频流? 中止音频意味着, 如果正在播放一首歌曲,则单击第二个按钮,w ...

回答 1 投票 0

如何在app.run()之后销毁一个pygubu窗口?

我开始用python和pygubu做一些东西(IDK yet)。首先,我一直在探索你能用pygubu做什么。但是我遇到了一个问题,我不知道如何解决。我的...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.