?
µngbd schrieb:
Dein Beispiel ist zweifellos portabel. Eigentlich verwendet man dort (unter üblichen Umständen) für die zehn double's den Speicher aus fuell3[93] , oder?
nö, dieses 'füll3' und die anderen fülls auch, darfste natürlich nicht verwenden, die existieren in wirklichkeit ja auch nicht als struct members, die man ansprechen kann. durch das malloc (sizeof(struct blah) + irgendwas) wird die so erzeugte struct-instanz nach hinten künstlich vergrössert, so dass nur der letzte member grösser wird. und wenn er ein array ist, kannste die einzelnen elemente über [] adressieren. das ist eigentlich alles, keine hexerei. beim gcc kannst du übrigens ...
struct
{
...
typ array[b][0][/b];
};
... machen, und sparst damit die -1 im malloc-aufruf. ist aber nach ansi-C, glaub ich, nicht erlaubt.
µngbd schrieb:
Was mich da so verwirrt hat? Ich hab überlegt, was passiert, wenn ich aus dem double ein char mache, also ein "CharArray" anlege.
geht analog dazu. das array (ganz hinten!) kann irgendein typ sein, ist völlig egal.
µngbd schrieb:
Was man mit C nicht für seltsame Sachen machen kann...
mein reden. C ist irgendwie einfach und genial zugleich. so mancher noob würde gern ein ++ dranklatschen, aber ihm sei gesagt: 'C++ makes C bigger but returns the old value' (wenn überhaupt. sorry, volkard).