реклама на сайте
подробности

 
 
> Как создать массив строк переменной длины?
kolobochishe
сообщение Mar 21 2012, 05:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



При работе с разными графическими элементами меню удобно работать с индексами. Но выводить на экран надо название элемента.
Например вот сейчас такая задачка: выбрать тип оконной функции и передать программе номер выбора. Чтобы не городить вот такое

Код
        GUI_DispStringAt("Select WINDOW FUNCTION for FFT", 40, 40);
        GUI_DispStringAt("1 - Sine window", 20, 80);
        GUI_DispStringAt("2 - Hann window", 20, 110);
        GUI_DispStringAt("3 - Blackman window", 20, 140);
        GUI_DispStringAt("4 - Hamming window", 20, 170);
        GUI_DispStringAt("5 - Blackman–Nuttall window", 20, 200);
        GUI_DispStringAt("0 and other Keys - Rectangular window", 20, 230);
        GUI_DispStringAt("ESC - Return to A(t)-diagram", 20, 230);


хочу все строки поместить в один массив строк, чтобы сделать цикл вывода

Код
unsigned char NameOfFFTWindows[][] =
  {
    "1 - Sine window",
    "2 - Hann window",  
    "3 - Blackman window",
    "4 - Hamming window",
    "5 - Blackman–Nuttall window",
    "0 and other Keys - Rectangular window"
  };


но компилятор требует, чтобы длина строки все таки была определена. Количество строк необязательно, но длину требует.

Вот так компилит
Код
unsigned char NameOfFFTWindows[][40] =
  {
    "1 - Sine window",
    "2 - Hann window",  
    "3 - Blackman window",
    "4 - Hamming window",
    "5 - Blackman–Nuttall window",
    "0 and other Keys - Rectangular window"
  };


Но это же явный перерасход памяти. Как сделать, чтобы все было компактно?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 14:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016