Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
ufff... Jediné čeho chci dosáhnout je předat adresu konkrétního pole konstant podprogramu, tak abych…
mia 03.07.2018 13:44
mia
const char pole1[] PROGMEM={ 1, 2, 3, 4, 5}; const char pole2[] PROGMEM={ 6, 7, 8, 9, 0}; const char…
vladah 03.07.2018 13:48
vladah
int main(void) { ctipole(pole1); ctipole(pole2); ctipole(pole3); } sa mi zdá ako zbytočné opakovani…
Mlocik97 03.07.2018 13:52
Mlocik97
Možná se zkus nesoustředit jenom na mě, ale třeba i na tazatele :-) int main(void) { ..... if(podmi…
vladah 03.07.2018 13:56
vladah
Máš to marný, tohle přerostlý děcko chce a musí být středem pozornosti, jakmile ji nemá, začne ti mí…
Killer of amphibians 03.07.2018 14:00
Killer of amphibians
Ty čská nudle choď do piče :-) zasedlej týpek.... čo dislikuje len preto že mám za nickom číslo vätš…
Mlocik97 03.07.2018 14:02
Mlocik97
Nebo co? Hodláš mi vyhrožovat? Jediný se tu chováš jako pablb a jediný porušuješ pravidla fóra, já s…
Killer of amphibians 03.07.2018 14:04
Killer of amphibians
tebe fakt dobre jebe.... ;-) ostatne tys porušil pravidlá fóra už toľko krát taky... a nie len to,..…
Mlocik97 03.07.2018 14:06
Mlocik97
Oneskorená puberta? poslední
pozorovateľ 03.07.2018 16:45
pozorovateľ

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...


int main(void) {
.....
  if(podminka) ctipole(pole1);
  if(jinapodminka) ctipole(pole3);
.....
}

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)

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);
}

viz. moje prvni odpoved.

int main(void) {
  ctipole(pole1);
  ctipole(pole2);
  ctipole(pole3);
}

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.

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íš.

Zpět do poradny Odpovědět na původní otázku Nahoru