结构体指针数组初始化
时间: 2023-08-22 21:13:03 浏览: 118
指针初始化
引用\[1\]:这样其实是对指针内容(不是结构体内容)赋值,而不是想象的对结构体赋值;如果用结构名赋值,才能这样写。\[1\]引用\[2\]:我们举个例子,下面是 Animal 的结构体。 struct Animal { char *name; //指针成员 int age; char info\[200\]; //字符数组 struct Animal *nextAnimal; //指针成员 };\[2\]引用\[3\]:在VS中初始化链表,涉及到节点结构体的初始化,一开始的写法: typedef struct ListNode { int val; struct ListNode* next; }Node,*Link; struct ListNode* pnode_1, * pnode_2, * pnode_3, * pnode_4, * pnode_5,*head; *pnode_1 = { -21,pnode_2 };>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>第一处报错//这样其实是对指针的内容赋值,而不是想象的对结构体赋值;如果用结构名赋值,才能这样写 pnode_1 = (struct ListNode*)malloc(sizeof(struct ListNode));>>>>>>>>第二处报错 bool hasCycle(struct ListNode* head); int main(void) { //省略……………… } bool hasCycle(struct ListNode* head) { //省略……………… } 原因分析: 第一处报错: 。 问题:结构体指针数组初始化
回答: 结构体指针数组的初始化可以通过以下方式进行。首先,定义一个结构体类型,例如struct ListNode。然后,使用malloc函数为结构体指针数组分配内存空间,例如pnode_1 = (struct ListNode*)malloc(sizeof(struct ListNode));。接下来,可以通过指针的方式对结构体的成员进行赋值,例如pnode_1->val = -21; pnode_1->next = pnode_2;。最后,记得在使用完结构体指针数组后,使用free函数释放内存空间,例如free(pnode_1)。\[1\]
#### 引用[.reference_title]
- *1* *3* [关于指针结构体的初始化](https://blog.csdn.net/weixin_52297124/article/details/127759473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [C 结构体指针初始化](https://blog.csdn.net/AndroidBluetooth/article/details/89578484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文