2015-04-02 70 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];