Prosím o pomoc, vytvářím prográmek pro Atmel32 s LCD, tam by mělo být k dispozici menu, které jsem chtěl vytvořit pomocí struktur a 2-rozměrného pole, mám to nějak takto:
typedef struct menu
{ char jmeno[8];
char anone:1;
}MENU;
struct MENU polozka_menu[5][50];
#define polozka_menu[0,0].jmeno="menu1"; //proměnné hl. menu
#define polozka_menu[0,1].jmeno="menu2";
#define polozka_menu[0,2].jmeno="menu3";
#define polozka_menu[0,3].jmeno="menu4";
#define polozka_menu[0,4].jmeno="menu5";
#define polozka_menu[1,0].jmeno="submenu1-A";
#define polozka_menu[1,1].jmeno="submenu1-B";
#define polozka_menu[1,2].jmeno="submenu1-C";
atd.atd.
v samotném programu se k proměnným nemůžu nějak dostat:
polozka_menu[0,10].jmeno="aaaa" //to mi samozrejme nefunguje, docetl jsem se, ze takto NE, ikdyž nevím proč
strcpy(polozka_menu[0,10].jmeno,"sss"); //ale nejde mi to ani takhle
polozka_menu[0,10].anone=1; //ale i u tohoto mi to pise "invalid expression"
Zkoušel jsem hledat po netu, ale podobný příklad jsem nikde nenašel, určitě to bude nějaká ptákoviny, ale už jsem z toho zoufalý... Případně moc dík za každou radu.
Fórum › C / C++
AVR, C a pole struktur
no docela bych se bal spis pametovy narocnosti ... 250*9B ... to mas pres 2kB
byt tebou, kouknu spis na pgmspace (alias konstanty v programove pameti)
+ nemusi byt uplne potreba vicerozmerne pole..
a kdyby to fungovalo tak submenu-1B uz je na 8 znaku ponekud dlouhe.. uvazime li ze se tam musi nacpat i znak \0
no mám k dispozici 64kB, těch 8B i ten text byl jen na test, to jsem si nevšim, že jsem to přeťáp
v úmyslu mám 8polož. menu s 10 až 50 "dvojpoložkami" - jméno a stav, tak jak to mám, mi to přišlo pro začátečníka jako nejjedoduší pro naprogramování a vcelku i efektní (bez ohledu na velikost a rychlost, která mne teď tak nehoní, časem snad), jak se budu učit budu to vše zefektivňovat, ale chci to mít zatím "nějak" funkční, už teď bych věděl, jak to obejít přes více polí, ale je to zbytečné a hlavně neusnu, než najdu chybu... dík za případné rady
na ten pgmspace kouknu, to nevím co je :)
tak jestli atmel32 bylo jako 32b atmel tak to pak jo..
jen par poznamek tedy:
indexuje se [y][x] tj. ne [y,x]
strcpy by melo jit .. jen bacha na delsi retezce...
u tech 32b si nejsem uplne jist jak tam je pristup do program space
zítra zkusím udělat jen samostatný program, vyhodím vše, jen nadeklaruji to pole a budu se do něj snažit něco nějak zapsat, když to nepůjde dám to komplet sem (nynější program je už moc dlouhý) a jestli někdo přijde, kde mám co blbě, zatím děkuji....
tak chyba byla, že já měl tu definici v headru, místo ve fci, teď už to šlape, dělám v tom jen pár hodin, jediný co jsem před tím dělal byl TurboPascal :) a v něm program o cca 10tis. řádcích, ale už je to pár let a teď to Cko.... jinak dík za pomoc, určitě ji ještě využiju
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Dvourozměrné pole nebo pole struktur? — založil mardon
Pole struktur — založil Kuba-$
Deklarace pole struktur v C# — založil paul27
Pointer na pole struktur — založil Marcel
C Pole Struktur String — založil NotBeginner
Moderátoři diskuze