【发布时间】:2018-10-11 12:59:33
【问题描述】:
我正在尝试编写一个函数,该函数仅使用基于指针的逻辑在内存区域 (baseAddr) 中搜索某个字节 (Byte),计算出现次数,并将偏移量存储在数组 (Offsets) 中。这是我目前所拥有的:
uint8_t findBytes( uint16_t* const Offsets, const uint8_t* const baseAddr,
uint32_t length, uint8_t Byte) {
uint8_t bytesRead = 0;
int count = 0;
while (bytesRead < length) {
if ((baseAddr + bytesRead) == Byte) {
*(Offsets + count) = bytesRead;
count++;
}
bytesRead++;
}
return count;
}
无论出于何种原因,如果我使用 (bytesRead
【问题讨论】:
-
uint8_t类型变量的最大值是多少? -
一个简单的
printf状态变量将在一分钟内揭示这个错误。 -
这对无限循环很有意义!完全忘记了它只有 255。我改变了它,现在的问题是它一直找到 0 次出现并且没有存储任何偏移量,即使内存区域中有明确的出现。
-
不要更改已回答的问题!回滚。