问题标签 [struct]
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# - 我什么时候应该明确指定一个 StructLayout?
我正在摆弄从 C# 调用 DLL,并且遇到了定义我自己的结构的需要。许多文章强制结构的顺序布局
因此,我遵循套件,并且我的程序有效。现在,当我把线拿出来时,它仍然有效。为什么我需要它?
c# - 超过 16 字节的结构的最佳解决方案
我有一种我认为将其用作结构的类型。
- 它代表单个值
- 它是不可变的
但问题是,它有 6 个 int 字段。
那么我应该为这种类型使用哪种解决方案?
- 继续使用结构?
- 换班?
- 或者将 6 个整数打包成一个 int 数组,所以它只有一个字段
编辑
具有 6 个整数字段的结构的大小为 24 字节,这对于传递来说是巨大的。struct 的推荐大小不超过 16 字节
c# - 自动属性和结构不混合?
在回答这个帖子时踢了一些小结构,我意外地遇到了以下情况:
以下结构,使用 int 字段是完全合法的:
但是,使用自动属性的以下结构无法编译:
返回的错误是“'this'对象在其所有字段都分配给之前不能使用”。我知道这是结构的标准过程:必须从结构的构造函数中直接(而不是通过属性的 set 访问器)分配任何属性的支持字段。
一种解决方案是使用显式支持字段:
(请注意,VB.NET 不会有这个问题,因为在 VB.NET 中,所有字段在首次创建时都会自动初始化为 0/null/false。)
在 C# 中使用带有结构的自动属性时,这似乎是一个不幸的限制。从概念上考虑,我想知道这是否不是一个合理的地方,允许在结构的构造函数中调用属性集访问器的异常,至少对于自动属性?
这是一个小问题,几乎是一个极端情况,但我想知道其他人对此有何看法......
c++ - 内存中 C++ 对象的结构与结构
如果我有如下课程
结构如下
记忆中的结构 example_struct
与Example_Class
例如,如果我执行以下操作
将foo_struct.x = 8
和foo_struct.y = 9
(即:与 foo_class 中的 x,y 值相同的值)?
我问的原因是我有一个 C++ 库(不想更改它),它与 C 代码共享一个对象,我想使用一个结构来表示来自 C++ 库的对象。我只对对象的属性感兴趣。
我知道理想的情况是让 Example_class 围绕 C 和 C++ 代码之间的公共结构进行包装,但要更改正在使用的 C++ 库并不容易。
c - 如何释放 C 结构?
给定一个结构,例如
为什么下面的代码(在 iPhone 上运行的 Objective-C 类的上下文中)会抛出“非对齐指针被释放”异常?
注意我的超级目标是使用具有许多向量数学函数的 C 库,因此需要找到一些可行的方法来混合 C 和 Objective-C
iphone - 在Objective-C中初始化为类变量时,C结构被分配在哪种内存上
考虑以下:
当“矩阵”变量不再相关时(或当整个对象被释放时),如何确保正确释放结构分配的 64 个字节?
c - “struct foo*”和“foo*”之间的区别,其中 foo 是一个结构?
在 C 中,如果 foo 是一个结构,那么写“struct foo”而不是“foo”有区别吗?
例如:
谢谢/埃里克
c++ - 仅用于数据的类与结构?
在这种情况下,使用类而不是结构有什么优势吗?(注意:它只会保存变量,永远不会有函数)
相对:
类似的问题:
c - 如何在C中将struct转换为char数组
我正在尝试将结构转换为 char 数组以通过网络发送。但是,当我这样做时,我会从 char 数组中得到一些奇怪的输出。
这是各种 ax 值的输出(在使用 gcc 的 X86 上):
127:
7f 00 00 00
127 0 0 0
128:
ffffff80 00 00 00
-128 0 0 0
255:
ffffffff 00 00 00
-1 0 0 0
256:
00 01 00 00
0 1 0 0
我了解 127 和 256 的值,但是为什么数字在转到 128 时会发生变化?为什么不只是:80 00 00 00 128 0 0 0
我是在转换过程中忘记做某事,还是忘记了有关整数表示的事情?
*注意:这只是一个小测试程序。在一个真正的程序中,我有更多的结构,更好的变量名,并且我转换为小端。
*编辑:格式化
c++ - 结构数组和新/删除
我有一个这样的结构:
假设我想“删除”一个项目,如下所示:
后来我在同一个地方创建了一个新项目:
我还需要打电话delete[]
来清理吗?还是因为items[]
在编译之前知道数组的边界,所以不需要这样做?
将该指针设置为 NULL 有效还是我应该在那里调用 delete?