没报错但是运行结果出错,如何解决?(语言-c++)

问题遇到的现象和发生背景

没报错但是运行结果不对

问题相关代码,请勿粘贴截图

void Book::setAuthor()
{
char *n;
cout<<"输入作者"<<endl;
cin>>n;
person=new char[strlen(n)+1];
strcpy(author,n);
}

int main()
{
Book b;
b.setName();
b.setAuthor();

运行结果及报错内容

没报错,结果输完book名字之后就结束了

我的解答思路和尝试过的方法

把基类里面的setname改成虚函数

我想要达到的结果

正常运行就可以

char *n 没有定义指向的变量,是个野指针,不合法

n都没有分配空间怎么能直接输入呢

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632