我有 2 个结构和一个变量类型 Book
Book book_struct[100];
typedef struct Book{
int id;
char title[256];
char summary[2048];
int numberOfAuthors;
Author * authors;
};
typedef struct Author{
char firstName[56];
char lastName[56];
};
当我想更改每本书的标题时
//title
char *title_char=new char[parsedString[1].size()+1];
title_char[parsedString[1].size()]=0;
memcpy(title_char,parsedString[1].c_str(),parsedString[1].size());
strcpy(books_struct[z].title, title_char);
其中parsedString是一个数组,其中包含 id、标题、摘要、作者数量以及名字和姓氏
上面的代码适用于标题
但是当我尝试使用以下代码更改作者的名字和姓氏时
//author firstname
char *author_fn_char=new char[parsedString[4].size()+1];
author_fn_char[parsedString[4].size()]=0;
memcpy(author_fn_char,parsedString[4].c_str(),parsedString[4].size());
strcpy(books_struct[z].authors->firstName, author_fn_char);
程序编译,当我运行它时,它显示“程序没有响应”作为 Windows 错误并关闭...