实验一
结构体中使用指针变量进行输入输出:
使用new进行动态内存分配,而不是malloc
网上搜集的答案:
malloc只是分配内存,并不进行初始化,不调用类的构造函数,所以当以调用发生的时候,会出现错误
p = (BOOK)malloc(sizeof(Book));p->number = ss;
都是因为string对象的构造函数没有被调用,没有构建string对象。所以,无法调用string对象进行赋值。
解决办法,用new代替malloc,
p = new(Book);
new会调用相应类的构造函数完成初始化。
typedef struct {
string number;
string name;
float price;
}Book,*BOOK;
BOOK book = new Book[100];
cin >>book[i].number >> book[i].name >> book[i].price;
使用String对字符串进行操作,尽量不用字符数组