2014-02-18 115 views
0

林試圖打印通過結構和的typedef no_routes中C.但下面的代碼是分段故障嵌套結構和的typedef

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來定義新的數據類型,然後使用該數據類型直接定義結構變量,如下所示:

回答

0

您正在使用OS_CL(它是指針),但從未爲其分配內存。

void Initiate_CL() 
{ 
    OS_CL = malloc(sizeof(Os_class)); <-- allocation. 

    OS_CL->os_rdi[0].no_routes = 10; 
} 

請務必使用後free去分配內存以避免內存泄漏。