C语言结构体初始化问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言结构体初始化问题相关的知识,希望对你有一定的参考价值。

这个结构体中包含三个变量,num
name[20]
c
你的结构体初始化只初始化了
name[20]
其余俩个变量没有初始化,所以会报错
你可以这样初始化
struct
wo
b(1,"jack",'m');
要注意对结构体中所有变量都要初始化,除非这个变量有缺省值
参考技术A 你的CreateProcessA怎么跟API定义
不一样
proc不是指针吧
怎么能这样
初始化
ZeroMemory
((void*)(proc),
sizeof(proc));

C语言结构体指针定义问题 - C / C++ -

那个程序的结构体是这样定义的:[ol][*]struct book[*][*]??int num;[*]??float price;[*]??struct book*next;[*];[/ol]这个里面next的定义有点不明白,它没有指向任何地方吗,怎么和一般的定义不一样,哪位高手指导下

参考技术A struct book*next; 本身就是一个结构体类型的指针 指针应该是指向下一个节点啊结构体定义变量的时候 是一个整体所以跟一般定义的指针变量有区别 不过这个指针还是要初始化的 也是要分配指针指向的 它是一个域 参考技术B 再给你个例子,你就明白啦[ol][*]#include [*][*]struct book[*][*]??int num;[*]??float price;[*]??struct book*next;[*];[*][*]int main(void)[*][*]struct book book1=1,1.0f, 0;[*]struct book book2=2,2.0f, 0;[*]struct book book3=3,3.0f, 0;[*][*]book1.next = &book2;[*]book2.next = &book3;[*][*]struct book *bookt;[*]bookt = &book1;[*]printf(\"current book num is:%d\\n\", (*bookt).num);[*]bookt = (*bookt).next;[*][*]printf(\"current book num is:%d\\n\", (*bookt).num);[*]bookt = (*bookt).next;[*][*]printf(\"current book num is:%d\\n\", (*bookt).num);[*][*]system(\"pause\");[*][*]return 0;[*] [/ol] 参考技术C [ol][*]struct book[*][*]??int num;[*]??float price;[*]??struct book*next;[*];[/ol]这说明结构体book中包含三个数据成员,包括 整型的num、浮点型的price和指向book类型变量的指针next这种结构往往用来实现链表。 参考技术D 显然这个结构体是个链表节点这个指针在链表操作的时候会被赋值的

以上是关于C语言结构体初始化问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言结构体里的结构体怎么初始化

c语言结构体初始化

C语言中结构体初始化的方法

c语言如何对结构体某一成员初始化

c语言结构体初始化

C语言结构体指针定义问题 - C / C++ -