如何解决尝试从类中写入字符指针时出现访问冲突
我正在 Allegro 5 中创建一个输入字段,并尝试将内容写入控制台,然后再将其写入显示器(这样我就知道我读取了正确的输入),但目前我收到一个访问冲突,内容如下: 在 Allegro.exe 中的 0x7BD3FF80 (ucrtbased.dll) 处抛出异常:0xC0000005:访问冲突读取位置 0x000001F0。
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 举报,一经查实,本站将立刻删除。