Pointer v C++
Pavel Hudeček
edizon na seznam.cz
Pondělí Prosinec 12 11:25:07 CET 2022
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.
Díky,
PH
Další informace o konferenci Hw-list