Pointer v C++

Jan Waclawek konfera na efton.sk
Pondělí Prosinec 12 12:35:00 CET 2022


Tak neviem. Z pohladu C to vyzera na pohlad OK. C++ neovladam ale pritom mi
je jasne ze C++ nie je vylepsene C ale uplne iny jazyk, takze mozno nieco
suvisiace s tymi rozdielmi. Alebo nieco v tej casti kodu co nevidime.

wek


----- Original Message ---------------

>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