小编bab*_*rar的帖子

为什么以下 C++ 代码中存在内存泄漏?

假设存在一个名为Vec的类,其中有一个称为 vector的类,arr因为它是唯一的 member 。以下代码不会泄漏内存。(这意味着我的 Vec 析构函数按预期工作。)

int main() {
    Vec *obj = new Vec(5); // initializes a vector of size 5
    delete obj;
}
Run Code Online (Sandbox Code Playgroud)

然而,在下面的代码,有内存泄漏。但为什么?我似乎delete每次使用new. 我错过了什么?

int main() {
    Vec* obj;
    obj = new Vec(5);

    if (true) {
        delete obj;
        Vec* obj = new Vec(6);
    }

    delete obj;
}
Run Code Online (Sandbox Code Playgroud)

PS:我使用 valgrind 检查了内存泄漏。

c++ memory-leaks c++11

5
推荐指数
1
解决办法
151
查看次数

如何在SSE中使用imm8?

我有一个__m128i充满32位整数的寄存器。我想从寄存器中提取第4个元素。

例如,如果

int extract;
__m128i register = _mm_set_epi32(3,2,1,0);
Run Code Online (Sandbox Code Playgroud)

然后我想“提取”值为3。

似乎_mm_extract_epi32()应该可以完成工作。但是,它有一个imm8参数。


图: 在英特尔网站上的描述


我只是不了解imm8工作方式(或者在这种情况下会工作)。有人可以详细说明如何使用imm8作为参数吗?

c++ x86 sse simd visual-studio

1
推荐指数
1
解决办法
709
查看次数

标签 统计

c++ ×2

c++11 ×1

memory-leaks ×1

simd ×1

sse ×1

visual-studio ×1

x86 ×1