|
Нехватает памяти под массив |
|
|
|
Oct 6 2008, 11:41
|
Частый гость
 
Группа: Новичок
Сообщений: 85
Регистрация: 2-10-08
Пользователь №: 40 646

|
На МК, ATtiny 2313 есть массив: char *mas[15] = {"000000","000001","000010" ... "111111"}
Так вот массив вылезает за пределы допустимой памяти. Дальше идёт сравнение строки. Котрую получила функция. Впринципе я подумал а почему бы, не сделать так: если допустим первая строка массива равна входной строке, мы выходим из функции, если нет заменяем 1 элемент массива другой строкой, и так далее, памяти в разы будет меньше расходоваться! Только вот у меня постаянная несовместимость типов. Т.е я делаю так: mass[i] = "111000"; и получаю ошибку типа нада бы использовать flash unsigned char, а если этот тип использовать, то функция strcmp не работает. Вот два дня бьюсь, ничего невыходит. Думал может в eeprom определить этот массив, определяю, strcmp не работает. Может кто подскажет что нить?
P.S. использую Code VisionAVR;
|
|
|
|
|
 |
Ответов
|
Oct 6 2008, 12:15
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(MrYuran @ Oct 6 2008, 14:50)  Для начала, char - это 1 байт. Как туда можно затолкать mass[i] = "111000"; - может, объясните? char *mas[15] = {"000000","000001","000010" ... "111111"} - вообще бред Ну ведь даже в Вашем сообщении не Код char mas[] а Код char *mas[] так что с этой точки зрения всё нормально, в массив ложатся указатели на строки, а сами строки лежат отдельно. Проблема только в том, что и строки, и массив указателей на них лежат в ОЗУ (копируются из флеша в ОЗУ на старте программы), поэтому и не влазят.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
Xenom0rph Нехватает памяти под массив Oct 6 2008, 11:41 VladimirYU Цитата(MrYuran @ Oct 6 2008, 15:50) Для н... Oct 6 2008, 12:16  Xenom0rph Может как то подругому реалтзовать,
суть в функцию... Oct 6 2008, 12:26   ReAl Цитата(Xenom0rph @ Oct 6 2008, 15:26) сут... Oct 6 2008, 12:38  MrYuran Цитата(VladimirYU @ Oct 6 2008, 16:16) Эт... Oct 6 2008, 12:31   VladimirYU [quote name='MrYuran' date='Oct 6 2008... Oct 6 2008, 12:43   aaarrr Цитата(MrYuran @ Oct 6 2008, 16:31) Тогда... Oct 6 2008, 12:45   ReAl Цитата(MrYuran @ Oct 6 2008, 15:31) Тогда... Oct 6 2008, 12:46    VladimirYU Цитата(ReAl @ Oct 6 2008, 16:46) Запросто... Oct 6 2008, 13:01     ReAl Цитата(VladimirYU @ Oct 6 2008, 16:01) Ды... Oct 6 2008, 15:25    Xenom0rph Попробуем по другому
задача:
есть кодировка
000001... Oct 6 2008, 13:02     VladimirYU Цитата(Xenom0rph @ Oct 6 2008, 17:02) Поп... Oct 6 2008, 13:06      Xenom0rph Цитата(VladimirYU @ Oct 6 2008, 17:06) По... Oct 6 2008, 13:16       MrYuran Цитата(Xenom0rph @ Oct 6 2008, 17:16) дум... Oct 6 2008, 13:24        Сергей Борщ Цитата(MrYuran @ Oct 6 2008, 16:24) получ... Oct 6 2008, 13:32        Xenom0rph Цитата(MrYuran @ Oct 6 2008, 17:24) Я пре... Oct 6 2008, 13:33 VladimirYU Цитата(Xenom0rph @ Oct 6 2008, 15:41) На ... Oct 6 2008, 12:27 ReAl Цитата(Xenom0rph @ Oct 6 2008, 14:41) над... Oct 6 2008, 12:31 MrYuran Если кодировку менять не предполагается, предлагаю... Oct 6 2008, 13:08 MrYuran Всё. Допёр.
Преобразуете вашу строку в число (как ... Oct 6 2008, 13:35 Xenom0rph Цитата(MrYuran @ Oct 6 2008, 17:35) Всё. ... Oct 6 2008, 13:51 Огурцов Цитата(Xenom0rph @ Oct 6 2008, 11:41) cha... Oct 6 2008, 13:47 NicSm Не понятно зачем у вас явное присвоение массиву ук... Oct 6 2008, 14:22 NicSm Цитата(NicSm @ Oct 6 2008, 23:22) Не поня... Oct 8 2008, 15:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|