C语言 嵌套结构和类型定义



我试图通过 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 取消分配内存,以避免内存泄漏。

相关内容

  • 没有找到相关文章

最新更新