

C++, pole konstant, předání parametrů, jak na to?
Ahoj.... mám v tom hokej, přímo NHL...
potřebuju udělat něco takovýho:
const char pole1[] PROGMEM={1,2,3,4,5};
const char pole2[] PROGMEM={6,7,8,9,0};
const char pole3[] PROGMEM={a,s,d,f,g};
void ctipole(int pole) {
for(byte i=0; i<5; i++) {
byte hodnota=pgm_read_byte(&pole[i]);
//nějaké další akce....
}
}
int main(void) {
ctipole(*pole1);
ctipole(*pole2);
ctipole(*pole3);
}
kompilátor mě s tím posílá do prdele a já nevím jak to udělat, kde dát *, &, kde dát int nebo byte nebo co vlastně...
Když to napíšu takhle:
....
void ctipole() {
for(byte i=0; i<5; i++) {
byte hodnota=pgm_read_byte(&pole1[i]);
//další akce...
}
}
tak to chodí. Jenže to bych musel psát tři podprogramy pro jednu a tu samou věc, která se liší jen ukazatelem na pole konstant
Jak 100hoven?
ufff... Jediné čeho chci dosáhnout je předat adresu konkrétního pole konstant podprogramu, tak abych mohl podprogram volat z mainu kdykoliv a v závorce mu předat z čeho má číst. Takže vícerozměrné pole nechci, protože nebudu konstanty číst najednou ale různě, v závislosti např výsledku podmínky...
v ctipole() v cyklu bych použil for(byte i=0; i<sizeof(pole); i++)
cout neznám, půjde to použít pro vyčtení hodnoty z FLASH paměti? (pole je v PROGMEM)
viz. moje prvni odpoved.
sa mi zdá ako zbytočné opakovanie,... čo tak for cyklus a "číslo pola" dosadzovať z indexu cyklu for? (i když ak to budú stále len 3 "čítania" tak pre také množstvo je to ešte ok.
Možná se zkus nesoustředit jenom na mě, ale třeba i na tazatele
Máš to marný, tohle přerostlý děcko chce a musí být středem pozornosti, jakmile ji nemá, začne ti mínuskovat komentáře :D Prostě poraď tazateli a na Mloka se vykašli, je to šašek co nic neumí a do všech rýpe.
Ty čská nudle choď do piče
zasedlej týpek.... čo dislikuje len preto že mám za nickom číslo vätšie než 80.
Nebo co? Hodláš mi vyhrožovat? Jediný se tu chováš jako pablb a jediný porušuješ pravidla fóra, já si jen počkám :) Užívej dne Mloku, karma tě stejně dostane ;) (Btw jsem rád že si už začal nadávat, alespoň se konečně vybarvuješ
)
tebe fakt dobre jebe....
ostatne tys porušil pravidlá fóra už toľko krát taky... a nie len to,... hanovenie národnosti ti taky nic nevraví, ešte stále si myslíš že jsem čech? Ty seš už vyfarbil úplne. Čo si zatím poradil ty? celú dobu v tomto vlákne len pičujete. A ty nudle pičuješ v každom vlákne a nič neradíš.
Oneskorená puberta?
Když som to psal tak tazatel nepísal nič o tom že by nechcel jednotlivé polia použiť naraz. To napsal kedy? už dávno potom. Ostatne po tom čo dodal tazateľ že bude tie poľa čítať nezávysle na sebe tak pak áno súhlasím že 2D tam použiť je nie nemožné ale zbytočne problematické.
Mel jsem predtim jenom pocit, ze tady celou dobu jenom trollujes, ale ted uz to vim jiste. Nikdo nemuze byt tak tupy.
Rekap: odpovidal jsi na komentar, ktery odpovidal na to, co napsal tazatel.
To som psal k tvojmu kódu nie ku kódu tazatele. Chápeš? Neviem kto je tady tupý. Ostatne pravda, když som psal ten jeden konkrétny príspevok som ešte nemal prečítaný koment od tazatele. OK uznávam že v prípade toho jedneho komentu som to napsal blbo, i když to je rovnako blbo napsané v tvojom kóde. Za to ovšem nemusíš hneď útočiť. Kdybys nezaútočil na mňa hneď v prvom príspevku celé by toto tu vyzeralo inak
Já bych to neudělal, pokud bys nenapsal blbost. Nebo kdybys alespoň odpověděl na otázku.
PS: všiml jsem si, že kromě dislajkování všech mých komentářů, jsi opravil všechny ty své. To by odpovídalo tomu, že píšeš první blbost co tě napadne. Není divu, že pak vybleješ to, co jsi vyblil nahoře
Nejhorší pak je, že si to za každou cenu pak snažíš obhajovat.
Aby si nezačal stěžovat, že ho diskriminuješ prosím tě :D
ano, tohle funguje, jen ve "void ctipole (int *pole)" nesmí být (int *pole) ale (const char *pole), jinak mě překladač vyfakuje, že nejde provést konverzi mezi int* a const char*...
DÍKY!!!
Takže som správne napsal s tým char* .... vladah napíšeš mi niečo k tomuto? inak som rád že to tazateľ vyriešil. Ja bych povedal že poľku pravdy som mal ja a polku vladah.