2014-02-18 2 views
0

Im пытаясь напечатать 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 со структурой для определения нового типа данных, а затем использовать этот тип данных для прямого определения структурных переменных следующим образом:

ответ

0

Вы используете(это указатель), но никогда не выделяли для него память.

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

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

Убедитесь, что вы де-выделить память с free после использования, чтобы избежать утечки памяти.

Смежные вопросы