我试图通过 C 中的结构和 typedef 打印no_routes。但下面的代码是分段错误
typedef struct RDI
{
int no_routes;
}RD;
struct Os_class
{
RD os_rdi[10];
}*OS_CL;
void Initiate_CL()
{
OS_CL->os_rdi[0].no_routes = 10;
}
main()
{
Initiate_CL();
//printf( " CL %d",OS_CL->os_rdi[0].no_routes);
}
也使用 typedef 为用户定义的数据类型命名。例如,您可以将 typedef 与结构一起使用来定义新的数据类型,然后使用该数据类型直接定义结构变量,如下所示:
您正在使用OS_CL
(这是指针),但从未为其分配内存。
void Initiate_CL()
{
OS_CL = malloc(sizeof(Os_class)); <-- allocation.
OS_CL->os_rdi[0].no_routes = 10;
}
确保在使用后使用 free
取消分配内存,以避免内存泄漏。