Portál AbcLinuxu, 3. listopadu 2025 08:42
bbwrite(tfd3, iobuf3, (void **)&ciobp3, &ciobl3, sizeof(iobuf3), buf, (size_t)i);problem je cast (void **). Dost tomu nerozumiem, lebo ciobp3 je pointer na char a bbwrite ocakava typ (void **). Cize malo by to byt v poriadku. Ajhla gcc si mysli nieco ine. Ma niekto nejaky napad? Diki moc Tom.
char** na void** v podstatě znamená, že umožňujete skrytě přetypovat void* na char*. Je to podobné, jako že implicitně lze provádět konverzi T* na const T*, ale už ne T** na const T**.
T** na const T**. Novej typ je omezenejsi, tak v cem je problem ???
const pomocí aliasu:
const T* cp = &ro_data; T* np = &rw_data; const T** pcp = &cp; T** pnp = &np; // tohle nemůžu: *cp = x; // tohle taky nemůžu np = cp; // nelze *np = x; // OK // ale tohle by byl o vlastně totéž pcp = pnp; // nelze *pcp = cp; // OK - jenže teď jsem vlastně provedl 'np = cp' *np = x; // OK
const omezuje na const char* a to jeste jenom, kdyz me je vnuti kompilator
)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.