struct + sizeof
-
hi,
struct foo { bool arr[1]; int val; };
warum ist sizeof(foo.arr[1]) == sizeof(foo.arr) ?
-
wieso sollten 1 bool und 1 bool unterschiedliche groessen haben?
-
foo.arr ist ein Zeiger, foo.arr[1] ein bool.
Haben offenbar die gleiche Grösse..
-
"foo.arr" ist ein array.
und sizeof(array) liefert nunmal dessen groesse.
in diesem fall: 1 bool
-
-
okok *indieeckegehundschäm*
-
hi,
folgendes beispiel:void test(void **ptr) { ... } strcut foo { int value; bool arr[100]; } int main() { foo f; test((void**)(&f.arr)); test((void**)&(f.arr)); }
sind beide funktionsaufrufe gleich...mit unterschiedlicher klammer? wie sollte man es machen?
-
sind gleichwertig.
-
öhmm, wieso denn **ptr? Das sieht nach bösem Gefrickel aus.
-
so lange es spass macht und keiner anfaengt mit flennen
-
c.rackwitz schrieb:
so lange es spass macht und keiner anfaengt mit flennen
wenn er im type-cast nur ein sternchen schreibt:
'(void*)'
kann er das funktionsargument mit beliebig vielen sternchen versehen
'void test (void ********ptr)'