cost 283 ms
堆栈分配的 class 的成员在 scope 端放置新位置时会发生什么情况? - What happens to members of a stack-allocated class put down with placement new on scope end?

我有这个(编译)代码: 编译器是否处理了 A 和 B 中的向量? Afaik 要销毁像 A 和 B 一样分配的 object,我必须显式调用析构函数。 我在这里不这样做,我想知道当 scope 结束时,是否仍然为 A 和 B 的成员向量调用析构函数。 这当然是必要的,因为他们管理堆资源。 ...

在堆栈上分配任意常量大小的结构 - Allocating structs of arbitrary constant size on the stack

我写了一个小型的工作插件服务器。 插件是使用.so共享对象实现的,这些共享对象在运行时通过调用dlopen (标题<dlfcn.h> )在“服务器”中手动加载。 所有共享的 object 插件都具有相同的接口:extern "C" void* do_something() { r ...

如果我想要一个全局 VLA,我可以在 main 函数中使用 alloca() 吗? - If I want a global VLA, could I use alloca() in the main function?

我的应用程序有一个main功能,我分配了例如配置文件的路径等。目前我为它们使用malloc ,但它们永远不会被释放,并且在应用程序的整个生命周期中始终可用。 我什至从未释放它们,因为操作系统已经在应用程序终止时自动回收分配的内存。 在这一点上,是否有任何理由不使用alloca而不是 malloc,因 ...

2021-06-28 07:43:05   4   64    c / alloca  
我们可以在 c++20 协程中使用 alloca() 或可变长度数组扩展吗? - can we use alloca() or variable length array extentions in c++20 coroutines?

GCC C++ 编译器(还有许多其他 C++ 编译器)提供非标准扩展,例如 alloca()用于基于堆栈的分配可变长度 arrays,因为它们是 C 标准的一部分从基本的角度来看,这些可以在 C++20 协程中使用吗? 有可能吗? 如果是的话,这是如何实现的? 据我了解,C++20 协程通常在第 ...

为什么 alloca 两次返回相同的地址? - Why is alloca returning the same address twice?

我正在尝试实现自己的数学库,并且从向量开始。 想法是给 class 一个指向数字数组的指针,然后复制该数组并将其存储在私有变量指针给出的数据地址中。 首先,我使用alloca尝试为私有变量释放一些 memory vml.h 主文件 这不会产生任何错误,但是由于某种原因, alloca在调用两个实 ...

c alloca function 的奇怪汇编代码禁用优化 - gcc 使用 DIV 和 IMUL 常量 16,并移位? - Strange assembly code for c alloca function with optimization disabled - gcc uses DIV and IMUL by a constant 16, and shifts?

我在 c 中有这个简单的代码 我希望为 alloca function 生成的汇编代码只会递减堆栈指针(一个子指令),并且可能会进行一些对齐(一个和指令),但生成的汇编代码非常复杂,甚至比您预期的效率低。 这是objdump -d main.o的 output ,在gcc -c的 output 上 ...

alloca 的性能 - Performance of alloca

这些天我经常使用alloca来分配临时缓冲区。 在我的应用程序(信号处理)中,这是一个常见的需求。 问题是: 分配多个数组时,只使用一次 alloca 是否更好(性能方面)? 像这样: 或者像这样多次使用它: 我的意思是它可能所做的只是减少堆栈指针并可能进行“堆栈探测”,这取决于大小, ...

有没有办法在 GNU C 中显式操作堆栈上的变量数据? - Is there a way to explicitly manipulate variable data on stack in GNU C?

(GNU) C 至少提供了两种机制来操作堆栈上的变量数据——第一个是alloca函数及其相关函数(例如strdupa ),第二个是“可变长度数组”功能。 alloca的问题在于它似乎没有在内存中分配连续区域 - 程序 印刷 这表明后续分配可能会返回四倍的单词(但我希望它是特定于实现的 ...

试图了解 x86 上的 alloca() function 的装配实现 - Trying to understand the Assembly implementation of the alloca() function on x86

我对组装很陌生,我目前正在阅读一本名为《初学者逆向工程》的书,我读到了关于堆栈上 memory 分配的部分。 我理解(我认为)堆栈分配的概念,但在示例中有些东西我不理解,如果有人能提供帮助,我会很高兴。 本书以function为例: 我了解 C function 的作用。 它在堆栈上分配 600 字 ...

使用赋值运算符检查和对齐 alloca() 的临时生命周期 - Lifetime of temporary with assignment operator to check and align alloca()

在编写一些大型代码库的测试和分析过程中,我不得不用自己的方法替换对 alloca() 的数千次调用。 在我的目标平台上,如果数字为零,alloca() 将失败,因此我们要断言是这种情况。 我们还想提供一个单一调用的 alignment 版本。 但是, alloca() 具有与 scope 相关的特定 ...

如何告诉 LLVM 它可以优化离店? - How to tell LLVM that it can optimize away stores?

背景(可能有更好的方法来做到这一点):我正在开发一个 Julia 库,我在其中手动管理 memory; 我mmap一个大块,然后主要将其视为堆栈:函数接收指针作为参数,如果它们分配 object,它们将向被调用者返回一个递增的指针。 该被调用者本身可能不会增加指针,并且只返回它收到的原始指针,如果 ...

alloca()内存可以重新分配吗? - Can alloca() memory be reallocated?

malloc分配的malloc可以使用realloc重新分配。 alloca有类似的功能吗? 如果不希望在堆上分配内存,并且需要多次分配变量堆栈内存,例如在库函数中需要动态内存但不想要在堆上分配,因为库的用户可能使用自定义堆分配策略。 它看起来像这样: 重要的是这一切都发生在堆栈上 ...

构造一个指向alloca的函数指针会导致链接器错误? - Constructing a function pointer to alloca causes linker errors?

我试图写一个函数,传递一个函数用于分配作为其参数; 它应该接受任何类型为void *(*)(size_t)有效分配器。 但是,当我尝试使用alloca作为分配器时,我遇到了奇怪的行为 - 构建一个指向alloca函数的函数指针编译得很好,但会导致链接器错误: 结果是 这与内联 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM