以下のコードの9行目は、未定義の動作を生成します。title1[]
これは、グローバルであり、グローバルであるという事実によるものmain()
ですか?それとも私が欠けているのは何か他のもののためですか?
1. char title1[]="The Name of the Rose";
2. Book book1={title1,900,0};
3. int main(){
4. Book book2={"Foucault's Pendulum",1000,0};
5. Book* book3=(Book*)malloc(sizeof(Book));
6. *book3=book2;
7. book1.next=&book2;
8. book2.next=book3;
9. book1.title[0]='B';
10. book2.title[0]='A';
11. {
12. Book list[2];
13. list[0]=book1;
14. list[1]=book2;
15. list[1].next->next=&book2;
16. {
17. Book* p=&list[0];
18. while (p!=0) {
19. p=p->next;
20. }
21. }
22. return 0;
23.}
編集:
ブックの定義を追加しました:
;struct Book
typedef struct Book {
; char* title
int pages;
; struct Book* next
;} Book