问题标签 [static-allocation]
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.
c++ - std::array<> 是否只保证在堆栈上分配?
std::array<int,10>
(没有我自己使用)是否new
保证被分配在堆栈中而不是 C++ 标准的堆中?
说清楚,我不是说new std::array<int, 10>
。我主要想知道,是否允许new
在其实现中使用标准库。
c - C99:是否可以设计一个没有动态分配的抽象数据类型?
我必须设计一个抽象数据类型,但我不允许使用动态分配。好像有点棘手……
我目前拥有的:
在 adt.c 中:
在 adt.h 中,丑陋的部分来了:
现在我可以像这样使用它:
在专业方面,我有一个不透明的数据类型,我不必使用动态分配。
不利的一面,这只是丑陋的。当我尝试不在函数内(例如全局)调用 ADT_DATA( ... ) 时,我收到一条错误消息。
有可能改善这一点吗?目前,我唯一的选择是公开数据类型......
TIA 为您的想法!
c++ - 数组的C/C++静态定义循环数据转发定义
我正在寻找最好的方法来静态定义需要循环链接的 C/C++ 数据结构。例如,一棵树,其中孩子和父母都需要彼此的指针。
以上编译(g++ 5.2)。该extern
关键字似乎允许我从ops
into创建一个前向引用ops_subops
,而另一个方向自然而然地工作,因为ops
之前ops_subops
。
我不喜欢的是,我更喜欢两个数组static
(不在目标文件中创建公开可见的符号)。
我可以对其中一个方向使用整数索引,但这似乎有点做作,我宁愿让链接器为我解析地址。
任何人都有一个神奇的关键字来完成这项工作?
谢谢!
编辑:我需要避免使用 C++ 静态构造函数和前沿 C++17 扩展(遗憾的是)。而且我的方法需要独立于平台。
c - sizeof 复合文字数组
我正在尝试静态分配一些结构,每个结构都包含两个成员:一个指向结构数组的指针,以及该数组的大小。
这是代码的工作版本:
但不是单独定义数组,然后在定义结构时引用该数组,我想用数组文字初始化指针,以便将其全部包含在结构定义中,以便我认为提高可读性:
是否可以在编译时自动获取该数组文字的大小?(或者我是在滥用语言并使事情变得比应有的更难吗?)
编辑:基于奥拉夫对类似问题的回答和约翰博林格的评论,这就是我最终得到的结果:
c - libc中的“静态分配”到底是什么意思?每个库实例一个?每个程序实例一个?
在 (g)libc 中,例如在localtime等时间和日期函数中,手册说:
返回值指向一个静态分配的字符串,随后调用任何日期和时间函数可能会覆盖该字符串。
据我所知,我的程序是单线程的。我使用asctime或localtime等“MT-Unsafe”功能是否安全?
即使内存中只有 1 个 (g)libc 库实例?(即作为一个动态库。)
“静态”是指“我的程序静态”(为每个程序实例分配一个新的缓冲区实例......),“进程静态”(每个进程一个缓冲区实例 -这表明)还是静态的(libc )库(与库(-fragment)实例一样多的缓冲区实例)?
(我知道问题#8694365,但我的有点不同。)
c++ - 用静态分配替换动态分配
我有一个项目,我必须定义一个不同维度的数组(如三角形),因为我不允许使用 std::vector 或其他容器类。为此,我使用了一个指针数组。通常,我会这样做:
但是我一定不能使用动态内存!我以为这样做
会成功的。但它没有。相反,当我遍历数组并打印内容时,我得到了垃圾。那么,如何用静态分配替换动态分配?
static-allocation - 编译器设计中的静态分配和堆栈分配
我不清楚是静态和堆栈分配是什么?静态分配是静态的,堆栈分配是动态的吗?那么堆分配属于哪里呢?
激活记录与此有何关系?我认为激活记录是一个类似于激活树的概念性东西,并没有任何物理存在。
以下目标机器码是什么意思?
静态分配:
堆栈分配:
c++ - 是否可以在不使用 C++ 中的堆的情况下创建类 String?
我想编写自己的类 String,它的接口类似于 std::string。字符串类不应使用动态内存分配。
我需要一个 c-tor:
并且应该有包含不同(不知道)元素数量的选项卡,所以我在编译时不知道大小。
在我看来这是不可能的,因为如果我们在编译之前不知道数组的大小,我们就无法在没有动态分配的情况下创建它——当然,为 500 个字符创建缓冲区,然后 String 类只能是 500,这不是我的期望。
你有什么主意吗?也许有什么方法可以创建我会缩小以适应的缓冲区吗?感谢帮助!
c++ - 嵌入式 C++:没有动态分配的动态类型?
这是我的问题,简化:
- 我有一个 C/C++ 代码,C 用于服务,C++ 用于处理。
- 我在 C 中有一个接口,它返回一个结构 RawData,其中包含循环更新的信息。
- 我有一个虚拟妈妈班“动物”
- 我有一个从母亲类继承的已知动物列表。
- 我有一个“建筑”类,其中只有一个动物,但在实例化建筑物时我不知道它的类型。
这就是我苦苦挣扎的地方:
- 在建筑物实例化期间为建筑物中的动物分配内存而不知道其类型,
- 动物的类型和属性可能会周期性地变化 换句话说:静态分配的动态类型是否可能?那么,我怎样才能调用这些实例以便调用正确的方法呢?
这是我的限制:
- 嵌入式系统
- 没有动态内存分配
我虽然关于:
- 具有 unique_ptr 的工厂设计模式效果很好!!!...但是,在堆上:(
- 对象池?
- 动态类型:但没有动态分配是不可能的,是吗?
有没有可以满足我需求的设计/模型?
谢谢!
c - 在 C 中释放本地定义的变量
假设我们有以下代码:
在 foo() 返回之前,C 中是否有一种(最好是可移植的)方法从运行时堆栈中释放缓冲区(类似于添加 esp,汇编中的 100) ?