Pointer v C++

Pavel Hudeček edizon na seznam.cz
Pondělí Prosinec 12 11:56:06 CET 2022


unsigned char masks[10][SINGLE_CHIP_PIXSIZE];

di je parametr a jako parametr projde ještě několika voláníma, na 
začátku je:
for (unsigned n = 0; n < connectedDevCnt; n++) testFnThrCall(n, thli);
Kde n vstupuje do di v testFnThrCall. A tahle funkce pouští thready. Pak 
následuje while, který počká až mají všechny hotovo.

PH

Dne 12.12.2022 v 11:35 Jan Waclawek napsal(a):
> masks[di] --> unsigned char *mask
>
> ako presne je deklarovane masks resp. di?
>
> wek
>
>
>
> ----- Original Message ---------------
>
> Subject: Pointer v C++
>     From: Pavel Hudeček <edizon na seznam.cz>
>     Date: Mon, 12 Dec 2022 11:25:07 +0100
>       To: hw-list na list.hw.cz
>
>> Dobrý den vąem,
>> mějme funkci:
>> int maskDevAuto1(unsigned di, unsigned run, double time, unsigned short
>> limit, unsigned char *mask, int *maskedCnt) {
>>      ...
>>      maskedCnt[0] = 0;
>>      ...
>>      for (n = 0; n < ...
>>         ...
>>         if (mask[n] == PXC_PIXEL_MASKED) maskedCnt[0]++;
>>      }
>>      ...
>>      printf("maskDevAuto1: %d: time %.3f, limit %d, run %d, masked
>> %d\n", di, time, limit, run, maskedCnt[0]);
>>      return 0;
>> }
>>
>> a ta je volaná z:
>>
>> int maskDevAuto(unsigned di, unsigned short limit) {
>>      ...
>>      int maskedCnt = 0;
>>      ...
>>      for (run = 0; run < 10; run++) {
>>          rc = maskDevAuto1(di, run, times[run], 100, masks[di], &maskedCnt);
>>          ...
>>      }
>> }
>>
>> Takhle to funguje. Proč to ale nefunguje, pokud místo maskedCnt[0] dám
>> *maskedCnt?
>> Umře buď ten if, nebo printf. Případně neumře, ale ten printf napíąe
>> hausnumero, klidně třeba záporný.
>>
>> Poznámky:
>> masks a times jsou globální pole.
>> maskDevAuto je volána z daląí funkce a ta je ve for cyklu spuątěna v
>> několika threadech s různým di.


Další informace o konferenci Hw-list