2015-04-02 72 views
0

頭文件book_info結構在struct數組中分配struct數據?

struct book_info { 
     char title[50]; 
     char author[40]; 
     unsigned int year_published; 
    }; 

typedef book_info; 
book_info books[20]; 

void init_heap() { 
    head = 0; 
    for(int i = 0; i < 19; i++) { 
      books[i].year_published = i+1; 
     } 
    books[20].year_published = 10000; 
} 

試圖讓book_info結構的數組,然後分配初始化時每年出版的每個結構體爲數字。不確定問題是什麼?

+0

你是什麼意思'的typedef book_info的意思;'? – 2015-04-02 06:20:08

+0

'書[20] .year_published'訪問越界。有效索引是'0'到'19'。 – 2015-04-02 07:13:29

+0

您的問題應該包括您正在遇到的問題(包括任何編譯器錯誤/警告消息的確切文本) – 2015-04-02 07:14:25

回答

2

而不是

typedef book_info; 

你需要

typedef struct book_info book_info; 
1

您可以通過兩種方式解決這個問題。

1. typedef struct book_info book_info;

2.

struct book_info{ 
//... 
    }books[20];