Так, в JavaScript (CoffeeScript), у меня есть некоторый код, который выглядит следующим образом:как заполнить массив переменных длины строк
"BRIGHT":
min: 1
max: 4
step: 1
value: 3
bluetooth:
options: [ 'off', 'on' ] # SOMETIMES I NEED ARRAY
callback: ->
rangeFinder.bluetooth = rangeFinder.getSetting().value
mode:
options: [ 'basic', 'advanced', 'config' ] # OF DIFFERENT LENGTHS
callback: ->
rangeFinder.lastMode = rangeFinder.getSetting().value
Как сделать что-то подобное в C++?
У меня есть массив из 3-х объектов, подобных яркость
#include "setting.cpp"
class GlobalMenu {
public:
MenuSetting settings[3];
int setting;
GlobalMenu();
};
GlobalMenu::GlobalMenu(void){
// What is the currently selected setting?
this -> setting = 0;
this -> settings[0].name = "BRIGHT";
this -> settings[0].min = 1;
this -> settings[0].max = 4;
this -> settings[0].step = 1;
this -> settings[0].value = 3;
this -> settings[1].name = "BLUETOOTH";
// HOW DO I GET VARIABLE LENGTH ARRAYS HERE?
}
и setting.cpp
class MenuSetting {
public:
char *name;
int min;
char options[][5];
int max;
int step;
int value;
};
где-то еще, этот код изменяет настройки (и работу)
void RangeFinder::changeSetting(int dir) {
this -> data.global.settings[this -> data.global.setting].value +=
(dir ? 1 : -1) *
this -> data.global.settings[this -> data.global.setting].step;
this -> enforceMinMax();
this -> render();
}
также если вы можете найти способ его очистки u р, который поможет
Таким образом, я, вероятно, может понять, как определить, если опции имеет длину, но у меня возникают проблемы, назначая любое количество опций в массиве опций
Решение не может использовать STD.
Насколько я знаю, микроконтроллер atmega32 не может использовать std lib.
Вопрос был с двумя тегами с C и C++; теперь он был изменен, поэтому он помечен только C, основанный на обсуждении в комментариях к [Zac Howland] (http://stackoverflow.com/users/529761/zac-howland) [ответ] (http: //stackoverflow.com/a/21765997/15168). Очевидно, что код в вопросе должен быть C++ ('class GlobalMenu'), который оставляет тег C выглядящим странным. Все очень смутно! –
его не помечено знаком c в любом из моих прав. его C++. – Funkodebat