Шайтан-массив!
Объявляю массив строк фиксированного размера
PHP код:
|
const char phonem_table[685][5]={
"(.)а", // 0
"(.)е", // 1
"(.)и", // 2
"(.)о", // 3
...бла-бла-бла....
};
|
По идее каждый элемент-строка имеет 5 байт, т.е. 4 символа + NULL.
Пишу примитивнейший цикл копирования элемента-строки в отдельную строку
PHP код:
|
uint16_t i,k;
uint8_t tmp[5];
for( i=0; i‹680; i++ )
{
for( k=0; k‹5; k++ )
{
tmp[k] = phonem_table[i][k];
}
};
|
На втором проходе(i=1) цикл спотыкается и в tmp[] копируется бред: 0x00, 0x28, 0x2e, 0x29, 0xe5. Т.е. как бы массив съехал на один байт вправо.
До этого строки были 4-байтовыми и все было ОК, но понадобилось расширить на 1 байт и пошли проблемы.
Компилятор Keil MDK 4.70, оптимизация -O0.
Что я делаю не так?