c++ - 错误 - 在复制构造函数中在 0x7C0708F0 处引发异常并且无法运行程序
问题描述
我正在尝试运行C++
代码并在复制构造函数中获取错误。
错误是-
在 0x7C0708F0 (ucrtbased.dll) 处引发异常:0xC0000005:访问冲突读取位置 0x00000000。
// Default constructor
Token::Token()
{
text = NULL; // default constructor creates an empty C-String
}
// Explicit normal Constructor
Token::Token(const char* newtoken, int LineNumber) // const is not applied please check
{
text = new char[strlen(newtoken) + 1];
strcpy(text, newtoken);
number_list.pushBack(LineNumber);
}
//Copy Constructor
Token::Token(const Token& token)
{
int len = strlen(token.text); -----> error on this line
text = new char[len + 1];
*text = *token.text;
}
以下是上述代码的头文件代码是-(仅显示代码的必需部分,否则它是一个很长的程序)
class Token
{
private:
char* text{ }; //pointer to array of characters
IntList number_list; // manages the list of numbers
public:
Token(const char*, int); // const is not applied please check
Token();
Token(const Token&); // copy constructor
Token(Token&&); // move constructor
Token& operator=(const Token& rhs); // copy assignment constructor
解决方案
你应该切换到 std::string, idk。除非因为某种原因被禁止。
推荐阅读
- angular - 如何设置 mat-chip 输入的最大芯片数?
- excel - 验证 Excel 用户窗体中特定多页页面上的文本框
- android - 在 Android 中将 firebase 数据库与 sqlite 数据库同步
- html - 颜色在不同部分的 webgrid 中未正确显示
- reactjs - 我的 gulp.js 文件只是第一次运行,然后就看不到了
- java - 我可以在不运行项目的情况下使用后端 api 吗?
- php - 使用 PHP 从 SQL 中选择随机行,但从特定点到点 ID
- c# - 无法在 WPF XAML 中转换对象
- android - 如果应用程序未关闭,则将用户重定向到登录登录(最小化)
- selenium - 如何在我的 Selenium 命令行(selenium-side-runner)测试中插入暂停(延迟)?