我有以下工作代码。
#include <stdlib.h>
#include <stdio.h>
typedef struct Mystruct {
int id;
struct Mystruct** mystructures;
} Mystruct;
int main () {
Mystruct* ms1 = malloc(sizeof(Mystruct));
ms1->id = 1;
Mystruct* ms2 = malloc(sizeof(Mystruct));
ms2->id = 2;
Mystruct* ms3 = malloc(sizeof(Mystruct));
ms3->id = 3;
ms1->mystructures = malloc(sizeof(Mystruct) * 2);
ms1->mystructures[0] = (struct Mystruct*)ms2;
ms1->mystructures[1] = (struct Mystruct*)ms3;
printf("%d\n", ms1->mystructures[0]->id);
}
我不喜欢同时使用Mystruct
和(struct Mystruct)
引用相同的数据类型。有没有办法像这样递归地使用类型定义的Mystruct
typedef struct {
int id;
Mystruct** mystructures;
} Mystruct;
?这不会编译。谢谢
首先定义您的typedef,然后定义结构:
typedef struct Mystruct Mystruct;
struct Mystruct {
int id;
Mystruct** mystructures;
} ;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句