#include<iostream> #include<string> using namespace std; typedef int Status; typedef struct MenLNode { string menID; string menName; //borrowBook m[3]; int times; struct borrowBookLNode *borrowBook; struct MenLNode* next; }MenLNode, *MenLinkList; //Men w[10000000] = {}; //结构体里面搞一个链表,结构体里面有借阅图书数量 typedef struct borrowBookLNode//改成链表 { string bookName; string bookID; string bookLei; string borrowTime; string returnTime; struct borrowBookLNode* next; }borrowBookLNode, *borrowBookLinkList; //borrowBook m[3] ; int main() { MenLinkList M = new MenLNode; M->next = NULL; borrowBookLinkList B = new borrowBookLNode; B->next = NULL; M->menID = "001"; M->menName = "姚苏晏"; M->times = 1; M->borrowBook->bookName = "《0110》"; M->borrowBook->bookID = "0001"; M->borrowBook->bookLei = "文化"; M->borrowBook->borrowTime = "2023年6月6日"; M->borrowBook->returnTime = "2023年6月20日"; //borrowBookLNode borrowBook = { bookName,bookID,bookLei,borrowTime,returnTime }; //w[0] = { menID,menName,m[1] }; cout << M->menID << endl; cout << M->menName << endl; cout << M->times << endl; cout << M->borrowBook->bookName << endl; cout << M->borrowBook->bookID << endl; cout << M->borrowBook->bookLei << endl; cout << M->borrowBook->borrowTime << endl; cout << M->borrowBook->returnTime << endl; return 0; }
时间: 2024-03-12 20:43:38 浏览: 19
这段代码有一个问题,即结构体 `MenLNode` 中的 `borrowBook` 变量是一个指向 `borrowBookLNode` 结构体的指针,但是在创建 `MenLNode` 结构体时并没有为 `borrowBook` 分配内存,所以访问 `borrowBook` 的成员时会出现错误。正确的做法是在创建 `MenLNode` 结构体时为 `borrowBook` 分配内存,可以使用 `new` 运算符来实现:
```
MenLinkList M = new MenLNode;
M->next = NULL;
M->borrowBook = new borrowBookLNode; // 分配 borrowBook 结构体的内存
M->borrowBook->next = NULL;
```
相关问题
#include <iostream> #include <queue> #include <string> using namespace std;对代码进行注释
代码注释如下:
```c++
#include <iostream> // 引入输入输出流库
#include <queue> // 引入队列库
#include <string> // 引入字符串库
using namespace std; // 使用 std 命名空间
// 主函数
int main() {
queue<string> q; // 定义一个字符串队列 q
// 往队列中添加元素
q.push("apple");
q.push("banana");
q.push("orange");
// 输出队列头部元素
cout << q.front() << endl; // 输出:apple
// 弹出队列头部元素
q.pop();
// 输出队列头部元素
cout << q.front() << endl; // 输出:banana
// 输出队列中元素的个数
cout << "The size of the queue is " << q.size() << endl; // 输出:The size of the queue is 2
return 0; // 返回 0 表示程序正常结束
}
```
#include <iostream> #include <deque> #include <string> using namespace std;
这段代码是引入了`iostream`、`deque`和`string`这三个标准库的头文件,并使用了`std`命名空间。
`iostream`头文件包含了用于输入输出的标准库函数和对象,比如`cout`和`cin`。
`deque`头文件包含了双端队列容器的定义,可以在两端进行插入和删除操作。
`string`头文件包含了字符串类的定义,可以进行字符串的操作和处理。
`using namespace std;`语句是为了使用标准库中的函数和对象时可以省略写全命名空间,直接使用简化的名称。例如,可以直接使用`cout`而不需要写成`std::cout`。
希望能够解答您的疑问!如果还有其他问题,请随时提问。