Массив C ++ указателей на массив на платформе с ограниченной памятью (arduino)

для каждой буквы в алфавите i есть массив int, объявленный следующим образом:

int const  A[64] ={ 
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,
    0,1,1,1,0,0,0,0,
    0,1,0,1,0,0,0,0,
    0,1,1,1,0,0,0,0,
    0,1,0,1,0,0,0,0,
    0,1,0,1,0,0,0,0,
    0,0,0,0,0,0,0,0
};

затем i создайте еще один массив с указателями на них.

int const * text[] = { A, B, C };

это работает нормально, пока этот текстовый массив не достигнет определенного количества различных записей.

например, это работает:

int const * text[] = { A, A, A, A, A, A, A, A }; // could even go on much longer

но вылетает:

int const * text[] = { A, B, C, D }; // it seems the number of different entries matters

почему это? Я подумал, что если это указатели, то не имеет значения, на что они указывают, он всегда будет иметь постоянный размер?

обратите внимание, что это выполняется на платформе arduino, которая имеет очень ограниченную память.

10
задан Mchl 26 February 2012 в 14:58
поделиться