Tag: 结构

错误C2016:C要求struct或union至少有一个struct成员

当我使用2个头文件执行此类操作时:headerfile_1.h和headerfile_2.h我收到错误:错误C2016:C要求struct或union至少有一个来自headerfile_1.h中struct A定义的成员 在headerfile_1.h中 #include “headerfile_2.h” struct a; struct a{ B bb; }A; 在headerfile_2.h中 typedef struct b{ void (*func0)(A *aa); }B; 请帮助我理解,我哪里出错了。 谢谢。

在C中按字母顺序从文件中排序结构

有必要对字段上的结构进行排序(char last_name [256];)结构Pers并在控制台中显示用户。 怎么做? 先感谢您。 有这样的结构(嵌套): struct Pers { int id; char first_name[256]; char last_name[256]; struct { int age; int status; } st; } Pers; struct Pers sw[2]; char i=0; 从文件和输出中读取如下所示:所有内容都按照从文件中读取的顺序显示 FILE *file; file = fopen(“1.txt”, “r”); while ( fscanf(file, “%d%s%s%d%d”, &sw[i].id,sw[i].first_name,sw[i].last_name,&sw[i].st.age,&sw[i].st.status) != EOF) { printf(“%d %s %s %d %d\n”, sw[i].id, sw[i].first_name, sw[i].last_name, sw[i].st.age, sw[i].st.status); […]

在解析二进制数据时使用带有attibute的结构

已经看到了各种代码,其中一个将数据读入char或void ,然后将其转换为struct 。 示例是解析数据具有​​固定偏移的文件格式。 例: struct some_format { char magic[4]; uint32_t len; uint16_t foo; }; struct some_format *sf = (struct some_format*) buf; 为了确保这始终有效,需要使用__attribute__((packed))来对齐struct 。 struct test { uint8_t a; uint8_t b; uint32_t c; uint8_t d[128]; } __attribute__((packed)); 在阅读大而复杂的文件格式时,这肯定会使事情变得更加简单。 通常使用具有30多个成员的structs来阅读媒体格式等。 它也很容易在一个巨大的缓冲区中读取并转换为适当的类型,例如: struct mother { uint8_t a; uint8_t b; uint32_t offset_child; }; struct child { … } […]

数组如何在结构中工作?

如果我有例如 typedef struct node { int numbers[5]; } node; 每当我创建这样一个结构的实例时,就会在堆栈中为数组本身分配内存(在我们的例子中为5个整数的20个字节(考虑整数为32位)),数字将成为指向该缓冲区的第一个字节。 所以,我认为,因为在节点的实例内部,将有一个20字节的缓冲区(对于5个int )和一个4字节的指针( numbers ), sizeof(node)应该是24个字节。 但是当我实际打印出来的时候说是20个字节。 为什么会这样? 为什么不考虑指向数组的指针? 我将非常感谢任何回应。

指向结构和自我指针的指针

结构中的自引用指针和结构指针之间有什么区别? struct abc { int data; struct abc *next; } struct abc *pt; *next和*pt之间有什么区别? 他们的使用方式有何不同? 我对这两者之间的确存在疑问 我是初学者 第一个例子主要用于链表 指向结构节点和自引用指针的指针是一回事吗? 请参阅 see-programming.blogspot.in/2013/05/chain-hashing-separate-chaining-with.html这里我们使用struct hash * hashTable作为数组..how ?? 我们可以用* pt做同样的事吗

c共享内存中的结构

我有一个类似的结构 struct board{ char name; int values[37]; }board 想象一下这样一款游戏,其中有几个玩家在一张桌子上玩,并且他们都在数值arrays的不同位置做出不同的赌注。棋盘的名称是唯一的,玩家进入指定棋盘名称的游戏。 如果2个或更多玩家输入相同的棋盘名称,则他们都加入同一个游戏。 我需要将此结构放入共享内存并访问/修改“值”的内容 同时来自不同的进程(信号量不是问题)。 我设法将结构复制到一块共享内存中,但我不知道如何访问该名称以查看某个板是否已存在以及类似的内容。 这是一个学校项目,我有点绝望…. pleeease帮助和谢谢。 顺便说一下,我希望共享内存引用POSIX操作系统

在预定义的struct上创建动态矢量

我有一个预定义的结构要使用: typedef struct somestruct_s { int s; union { unsigned char *ptr; unsigned char l_ptr[sizeof(char *)]; }; }somestruct_t, *somestruct; 它包含减少内存使用量的联合。 我知道由于m32和m64编译(指针大小),大小可能会有所不同。 我的问题是如何“使用”该结构来进行精确分配。 此结构的目的是实现基本位操作,s变量包含位图的大小(以字节为单位)。 如果位图可以适合指向位图的指针占用的内存,那么我们在那里分配她。 我在上面写了一些位图操作,但我无法真正得到结构或如何操作它。

初始化结构数组,为什么使用struct变量不起作用

我是C的新手。如果有人能够帮助理解为什么第13,14和16行的代码不起作用,但第17-20行有效,我将不胜感激。 使用第一个选项(第13,14和16行),我得到了错误 error: initializer element is not constant 这是什么意思? 此外,这是否意味着不能使用某种类型的变量来生成新变量? 谢谢。 // Define structure for a good 5 struct good { 6 char goodname; 7 double p; //starting proportion 8 int theta; //average utility 9 int sigma; //variance of error 10 }; 11 12 // The goods H and L 13 struct good H = […]

Swift with C struct pointer

我有一个包含指针的C结构,全部在C头中定义: struct testA { int iSignal; struct testB *test; }; struct testB { int iPro; }; 然后我有一个Swift程序来初始化这个结构的一个实例: var a = testA() var b = testB() a.test = &b // this line error 但是我收到以下错误: ‘&’ used with non-inout argument of type ‘UnsafeMutablePointer’ 有人可以帮忙吗?

如何设置一个C函数,将用户输入分成多个部分,还拆分那些较小的部分?

我正在尝试开发一个带有一行用户输入的C函数,例如这一行: 1X 1X 3Y 1Z 1Z 1Z 1Z 2X 2X (编辑:这只是用户将输入的任意示例。在实际程序中,他们可以输入1到48个数字字符对之间的任何位置。) 想法是用户将插入整行,并将其分成9个部分(每个数字和字符对是一部分)。 然后,数字和字符对也将彼此分开(我正在考虑这部分,它们都属于包含numValue和charValue的结构)。 我可以用什么来分割用户的输入? 我对C.比较新。