问题标签 [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.

0 投票
3 回答
3909 浏览

c# - 我什么时候应该明确指定一个 StructLayout?

我正在摆弄从 C# 调用 DLL,并且遇到了定义我自己的结构的需要。许多文章强制结构的顺序布局

因此,我遵循套件,并且我的程序有效。现在,当我把线拿出来时,它仍然有效。为什么我需要它?

0 投票
7 回答
847 浏览

c# - 超过 16 字节的结构的最佳解决方案

我有一种我认为将其用作结构的类型。

  • 它代表单个值
  • 它是不可变的

但问题是,它有 6 个 int 字段。

那么我应该为这种类型使用哪种解决方案?

  1. 继续使用结构?
  2. 换班?
  3. 或者将 6 个整数打包成一个 int 数组,所以它只有一个字段

编辑

具有 6 个整数字段的结构的大小为 24 字节,这对于传递来说是巨大的。struct 的推荐大小不超过 16 字节

0 投票
3 回答
15947 浏览

c# - 自动属性和结构不混合?

在回答这个帖子时踢了一些小结构,我意外地遇到了以下情况:

以下结构,使用 int 字段是完全合法的:

但是,使用自动属性的以下结构无法编译:

返回的错误是“'this'对象在其所有字段都分配给之前不能使用”。我知道这是结构的标准过程:必须从结构的构造函数中直接(而不是通过属性的 set 访问器)分配任何属性的支持字段。

一种解决方案是使用显式支持字段:

(请注意,VB.NET 不会有这个问题,因为在 VB.NET 中,所有字段在首次创建时都会自动初始化为 0/null/false。)

在 C# 中使用带有结构的自动属性时,这似乎是一个不幸的限制。从概念上考虑,我想知道这是否不是一个合理的地方,允许在结构的构造函数中调用属性集访问器的异常,至少对于自动属性?

这是一个小问题,几乎是一个极端情况,但我想知道其他人对此有何看法......

0 投票
8 回答
37744 浏览

c++ - 内存中 C++ 对象的结构与结构

如果我有如下课程

结构如下

记忆中的结构 example_structExample_Class

例如,如果我执行以下操作

foo_struct.x = 8foo_struct.y = 9(即:与 foo_class 中的 x,y 值相同的值)?

我问的原因是我有一个 C++ 库(不想更改它),它与 C 代码共享一个对象,我想使用一个结构来表示来自 C++ 库的对象。我只对对象的属性感兴趣。

我知道理想的情况是让 Example_class 围绕 C 和 C++ 代码之间的公共结构进行包装,但要更改正在使用的 C++ 库并不容易。

0 投票
2 回答
16082 浏览

c - 如何释放 C 结构?

给定一个结构,例如

为什么下面的代码(在 iPhone 上运行的 Objective-C 类的上下文中)会抛出“非对齐指针被释放”异常?

注意我的超级目标是使用具有许多向量数学函数的 C 库,因此需要找到一些可行的方法来混合 C 和 Objective-C

0 投票
3 回答
477 浏览

iphone - 在Objective-C中初始化为类变量时,C结构被分配在哪种内存上

考虑以下:


当“矩阵”变量不再相关时(或当整个对象被释放时),如何确保正确释放结构分配的 64 个字节?

0 投票
4 回答
2309 浏览

c - “struct foo*”和“foo*”之间的区别,其中 foo 是一个结构?

在 C 中,如果 foo 是一个结构,那么写“struct foo”而不是“foo”有区别吗?

例如:

谢谢/埃里克

0 投票
7 回答
12979 浏览

c++ - 仅用于数据的类与结构?

在这种情况下,使用类而不是结构有什么优势吗?(注意:它只会保存变量,永远不会有函数)

相对:


类似的问题:

0 投票
10 回答
40934 浏览

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

我是在转换过程中忘记做某事,还是忘记了有关整数表示的事情?

*注意:这只是一个小测试程序。在一个真正的程序中,我有更多的结构,更好的变量名,并且我转换为小端。
*编辑:格式化

0 投票
8 回答
23078 浏览

c++ - 结构数组和新/删除

我有一个这样的结构:

假设我想“删除”一个项目,如下所示:

后来我在同一个地方创建了一个新项目:

我还需要打电话delete[]来清理吗?还是因为items[]在编译之前知道数组的边界,所以不需要这样做?

将该指针设置为 NULL 有效还是我应该在那里调用 delete?