Tag: 结构

结构内存分配,内存分配应为4的倍数

struct x { char b; short s; char bb; }; int main() { printf(“%d”,sizeof(struct x)); } 输出为:6 我在32位编译器上运行此代码。 输出应为8个字节。 我的解释 – > 1. Char需要1个字节,下一个short需要2的倍数,所以short创建1的填充并占用2个字节,这里已经分配了4个字节。 现在唯一的左边的char成员占用1个字节,但是因为内存分配是4的倍数,所以总内存给出的是8个字节。

struct声明中需要typedef

我正在尝试创建一个struct元素数组,如下所示: #include #include struct termstr{ double coeff; double exp; }; int main(){ termstr* lptr = malloc(sizeof(termstr)*5); return 0; } 当我编译它时,我得到如下错误: term.c: In function ‘main’: term.c:11:1: error: unknown type name ‘termstr’ term.c:11:31: error: ‘termstr’ undeclared (first use in this function) 但是,当我将我的代码更改为以下内容时,它会照常编译: #include #include typedef struct termstr{ double coeff; double exp; }term; int main(){ term* lptr = […]

初始化结构数组内的结构数组

我在结构数组中初始化结构数组时遇到了一个问题。 例如,如果我有如下代码: #include int main() { typedef struct { int a; int b; int c; } FIRST_T; typedef struct { int x; int y; int z; FIRST_T *p; } SECOND_T; FIRST_T p1[]={{1,2,3},{3,4,5},{6,7,8}}; FIRST_T p2[]={{4,5,6},{7,8,9}}; SECOND_T my_second[]= { {1,2,3,p1}, {4,5,6,p2} }; } 如果我必须在第二个数组初始化部分本身初始化我的第一个数组,那么我将如何编写我的typedef SECOND_T? 喜欢 SECOND_T my_second[]= { {1,2,3,{{1,2,3},{4,5,6},{7,8,9}}}, {4,5,6,{{1,1,1},{2,2,2}}} }; 那我的SECOND_T怎么样? 我确信我无法将其定义为: typedef struct { […]

C struct数组赋值问题

我是C的新手,我正在使用struct数组。 我无法为其分配值。 这是我的结构.. struct student{ char firstname[30]; char surname[30]; int streetNo; char streetName[30]; char suburb[30]; char state[4]; int postCode; char DOB[10]; int studentNo; char gender; char courseNo[4]; char active; int WAM; }; struct student person[1000]; 这是我为结构赋值 person[100].firstname = “dan”; 这是我的错误 assignment type mismatch: array[30] of char “=” pointer to char

错误C2440初始化无法将void转换为typ

#include #include // self – referential structure struct listNode { char data; // each listNode contains a character struct listNode *nextPtr; //pointer to next node }; typedef struct listNode ListNode; // synonym for struct listNode typedef ListNode *ListNodePtr; // synonym for struct listnode* void insert(ListNodePtr *sPtr, char value) { ListNodePtr newPtr = malloc(sizeof(ListNode)); // create […]

链接列表头地址更改C.

我创建了我的结构的链接列表,但由于某种原因,每次我添加另一个链接它改变头地址,但我希望y头地址是第一个条目。 这是我的代码: struct checkPoints *tgh = NULL; struct checkPoints **linkedlist = &tgh; struct checkPoints *cp = malloc(sizeof (struct checkPoints)); chPo = fopen(fileName, mode); if (chPo == NULL) { printf(“Can’t find the files.”); exit(1); } else { for (i = 0; i dropOut, &cp->currentPoint, &cp->competitor, &cp->hour, &cp->minute); cp->next = NULL; if (*linkedlist == NULL) { printf(“ONCE”); […]

在结构中使用另一个值的值设置一个数组的大小,在C中

struct { uint16 msg_length; uint8 msg_type; ProtocolVersion version; uint16 cipher_spec_length; uint16 session_id_length; uint16 challenge_length; V2CipherSpec cipher_specs[V2ClientHello.cipher_spec_length]; opaque session_id[V2ClientHello.session_id_length]; opaque challenge[V2ClientHello.challenge_length; } V2ClientHello; 是否可以做类似上面的事情( http://tools.ietf.org/html/rfc5246 )? 如果是这样,我如何在C内编码呢? 更具体地说,结构中的这一行: V2CipherSpec cipher_specs [V2ClientHello.cipher_spec_length]; 用途: V2ClientHello.cipher_spec_length 这是在同一个结构中定义的,用于设置数组的长度。

函数如何创建结构?

我对C编程课程的一个任务是定义一个名为create_card的函数。 此函数接收套装字符和卡值,并返回card_t结构。 问题:函数如何创建结构? 它不能只为结构创建值吗? 我是否曲解了问题的含义,还是错误地写下了作业?

C:指向Struct中函数的指针

我正在练习在C中构建一个struct数据结构,struct有一个指向函数的字段指针。 我写了下面的代码,但是当我尝试用gcc编译时,我收到以下错误: 在函数’main’中:custhreadsT​​est1.c:27:16:警告:从不兼容的指针类型分配[默认启用] 什么是在我的结构中为函数指针分配指针字段的正确方法? 非常感谢! #include #include #include typedef struct { ucontext_t (*gt_context); void (*function)(void *); int status_flag; } custhread_t; void *add(void *) { // do something here } int main(void) { ucontext_t ctx_main; getcontext(&ctx_main); custhread_t th1; th1.gt_context = &ctx_main; th1.function = &add; th1.status_flag = 1; return 0; }

* list和** list之间的区别

如果我有一个结构: typedef struct A { char c[100]; }A; 然后我创建一个 sizeOfA = 5000; A *list = (A*) malloc(sizeOfA * sizeof(A)); list[i]是指向结构的指针吗? 或者,如果我想要一个指向结构的指针,我应该这样做 A **list = (A**) malloc (sizeOfA * sizeof(A*); [编辑] 现在让我们说我使用A *list创建了A *list (我已经这样做了)。 我如何创建5000个指针并使它们指向列表中的元素? p0 -> list[0] p1 -> list[1] .. .. p[n] -> list[n] 来回几次后,我注意到对于指针的排序有很大帮助。 公平地说,我将上面的编辑作为一个单独的问题发布。