内存泄漏为整型c++
Memory leak into integer C++
我在代码中添加了一个新函数,现在我使用的一个整数受到某种内存溢出的影响。(请注意,这是关于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个位置
相关文章:
- C 字符串返回字符串的整数/双精度/长整型值
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- JNI 日期值转换问题,在C++中获取不同的长整型值
- 将长整型值打印为带有前导零的十六进制
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 将整型常量映射到类型
- 将元组和整型实例合并到引用元组中
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- 将最小值整数转换为无符号长整型
- 如何将小端格式的QByteArray转换为无符号长整型
- 直接初始化无符号短整型的标准行为
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 无符号和有符号短整型的位宽
- 将整型转换为浮点型时检测溢出
- 环礁和(长整型)的区别?
- 为什么允许将整型、枚举和指向成员的指针类型reinterpret_cast到自身?
- 将逗号格式化为长整型整数
- 如何将长整型传递给 itoa 函数?