内存泄漏为整型c++

Memory leak into integer C++

本文关键字:c++ 整型 泄漏 内存      更新时间:2023-10-16

我在代码中添加了一个新函数,现在我使用的一个整数受到某种内存溢出的影响。(请注意,这是关于Arduino Uno的。ino草图)

xPos--;不是递减1,而是递减256(如果我删除printText函数,则不会发生溢出)。

整数xPos和字符缓冲区是用

定义的
int xPos = 0;
char buffer[26];

就在include下面。u8g。drawStr函数在我的显示器上绘制字符串,并接受两个int型x和y,以及一个char*作为字符串的参数。

void printText(const char* inputText)
{
    int y = yPos;
    for (int i = strlen(inputText); i > 0; i -= 25)
    {
        strncpy(buffer, &inputText[strlen(inputText) - i], i >= 25 ? 25 : i);
        buffer[26] = '';
        u8g.drawStr(0, y, buffer);
        y += 8;
    }
}

任何委员会都会非常感激:)

您的缓冲区只有26个插槽:

    char buffer[26];

你试着写它的第27个槽:

    buffer[26] = '';

这行不通。(0是第一个槽位,1是第二个槽位,以此类推。所以26是第27个位置