尝试从类中写入字符指针时出现访问冲突

问题描述

我正在 Allegro 5 中创建一个输入字段,并尝试将内容写入控制台,然后再将其写入显示器(这样我就知道我读取了正确的输入),但目前我收到一个访问冲突,内容如下: 在 Allegro.exe 中的 0x7BD3FF80 (ucrtbased.dll) 处抛出异常:0xC0000005:访问冲突读取位置 0x000001F0。

我有一个带有字符指针内容的 Text 类

class Text
{
    ALLEGRO_FONT* font;

public:
    int dx,dy,fontsize;
    const char* fontFilepath;
    char* content;  
    int color[3] = { 0 };
};

然后按回车键打印出内容

if (ev.type == ALLEGRO_EVENT_KEY_CHAR) 
{
    const int inputChar = ev.keyboard.unichar;
    std::cout << "Input read: " << inputChar << " In char: " << (char)inputChar << "\n";
    if (ev.keyboard.keycode == ALLEGRO_KEY_ENTER)
    {
        std::cout << text.content;
        return;
    }
}

我可以看到我读到了正确的输入,但打印出来却导致了之前的错误。 IDK 但也许这是我将它们添加到指针的方式。

if (ev.keyboard.keycode == ALLEGRO_KEY_BACKSPACE) 
{
    if (strlen(text.content) > 0) 
    {
        text.content[strlen(text.content) - 1] = '\0';
    }
}
else if((inputChar >= 65 && inputChar <= 90) || (inputChar >= 97 && inputChar <= 122))
{
    text.content += (char)inputChar;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)