cost 225 ms
为 C 中结构的灵活数组成员赋值 - Assigning values to flexible array member of struct in C

我有一个结构表示 C 中的一个形状,带有一个灵活的顶点数组成员。 我有一个 function,它应该返回一个正方形。 我已尝试通过多种方式执行此操作,但当我从灵活数组成员访问顶点的 x 和 y 属性时,我总是得到不正确的值。 我认为这是因为我没有正确分配 memory。 我究竟做错了什么? 我的结构 ...

Function 在 c 中生成结构实例 - Function to generate struct instances in c

我如何编写一个 function 每次调用它时都会生成一个先前定义的结构的实例? 我敢肯定,因为这是一个简单的问题,所以不需要上下文,但这就是我现在所拥有的。 我在用 gcc 编译时得到了这个。 运行它时,我在一次 scanf() 后出现分段错误 ...

这个 C 程序是否定义了两个结构定义,涉及一个灵活的数组成员? - Is this C program with two struct definitions, involving a flexible array member, defined?

具有灵活数组成员的结构是可以声明变量并且可以应用sizeof的类型,这一事实导致以下程序中出现异常行为。 文件fam1.c : 文件fam2.c : 该程序在编译和运行时会发出令人惊讶的 output:$ clang -std=c17 -pedantic -Wall fam1.c fam2.c $ ...

检测结构是否包含灵活的数组成员 - Detect that a struct contains a flexible array member

说我有这样的结构 是否可以使用 SFINAE 检测灵活的阵列成员? 至少,我可以构造一个不能用这样的结构实例化的类模板: 如果我尝试创建一个invalid_with_fam<foo> : 所以现在我想使用它,这样我就可以禁用任何此类结构的模板。 由于这是一个非标准功能,我应该 ...

了解 malloc 和灵活的数组成员 - Understanding malloc and flexible array members

我很好奇malloc()是如何实际分配内存的。 我正在阅读 KNKing 的 C 编程以供参考。 尤其是第 17 章。最初在本章中void *malloc(size_t size)被描述为分配size字节的内存块并返回指向该内存块的void *指针的函数。 动态分配字符串和数组的两个主要应用程序。 ...

数组模板兼容性的好模式是什么? - What is a good pattern for array template compatibility?

我想创建具有可变长度元素数组的对象,并让它们在基类/派生类意义上兼容。 在 C 中,可以在struct的末尾放置一个不确定的数组,然后只需 malloc 对象以包含完整的数组: 在 c++ 中,您似乎可以这样做: 但: 你可以用一个通用的基类来做到这一点,但这有必要吗? 我只想使用foo ...

“具有灵活数组成员的结构不应是结构的成员”的基本原理是什么? - What is the rationale for "structure with flexible array member shall not be a member of a structure"?

C11,6.7.2.1 结构和联合说明符,约束,3(添加了强调): 结构或联合不应包含不完整或 function 类型的成员(因此,结构不应包含其自身的实例,但可包含指向其自身实例的指针),除非结构的最后一个成员具有超过一个命名成员可能有不完整的数组类型; 这样的结构(以及任何包含,可能递归地, ...

如何绕过零大小的数组? - How to get around zero-sized arrays?

在我正在使用的图书馆中,我发现了这样的结构: 所以这是一个具有灵活长度数据的数据包,可以访问每个字长。 但是标准说对象不能有零大小,因此编译它会引发警告(“ISO C 禁止零大小数组”)。 我在 gcc 中编译代码,因此由于其扩展,这个零大小的数组 hack 会做得很好。 但是有什么办法可以 ...

如何在堆栈上分配具有灵活数组成员的结构 - How to allocate a struct with a flexible array member on the stack

假设我们有一个以灵活数组成员结尾的结构: 如何在堆栈上分配这个结构(即内存在作用域结束时自动释放)? 另外,如果len可以包含字段data的大小,那就太好了。 目前,我做的事情是: 但是,它很容易出错。 使用alloca()可能会稍微好一点: 从那里,我可以定义一个这样的宏: 并声 ...

指向结构的不完整指针数组。 检测到堆栈粉碎 - Incomplete pointer array to struct. Stack smashing detected

对于看起来很糟糕的代码,我提前道歉。 这只是一个概念证明。 该程序的目的是填充“数据包”,但通过potmeter结构的可单独访问的指针。 该程序适用于完整类型的*potPointers[3] 。 它也适用于不完整类型*potPointer[] 。 但是在成功运行之后,我得到: 如何成功处理指向结构的 ...

灵活的数组成员,不必是最后一个 - Flexible array member without having to be the last one

我试图弄清楚 C 中是否有一种解决方法可以在结构中拥有一个灵活的数组成员,这不是最后一个。 例如,这会产生编译错误: 这不会产生错误: 但不起作用。 如果我有一个字节数组: data[6] = {1, 2, 3, 4, 5, 6}; 并将其转换为rtu_t ,然后crc成员将等于0x0302 ,而不 ...

带有新位置的 std::make_unique - std::make_unique with placement new

我正在尝试定义一个包含其大小的Data object,然后是数据的size字节。 就像是: 这行得通,我可以将其分配给新的位置: 我想创建一个std::unique_ptr<Data> ,并且作为一种好的做法,我更喜欢使用std::make_uinque ,而不是原始的new 。 是否 ...

为什么对具有灵活数组成员的结构的初始化无效但对固定大小的数组成员有效? - Why is this initialization of a structure with a flexible array member invalid but valid with an fixed size array member?

C 标准状态(强调我的): 21示例 2声明后: 结构 struct s有一个灵活的数组成员d 。 [...] 22 根据上述声明: t2的初始化是无效的(并且违反了约束) ,因为struct s被视为不包含成员d 。 资料来源:C18,§6.7.2.1/20 + /21 我不明白“因为 ...

为什么在 cfg80211 扫描请求中将更多的 memory(比需要的)分配给具有灵活数组成员的结构? - Why more memory (than being required) is allocated to a struct with flexible array member in cfg80211 scan request?

我正在学习 linux wifi 驱动程序,并且正在探索cfg80211子系统中的代码以获取扫描请求。 我不明白为什么以下struct分配的 memory 比需要的多。 或者,我无法理解要分配的memory的大小是这样计算的。 该struct在include/net/cfg80211.h中定义:s ...


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