Thread Länge eines Char-Vektors
(6 answers)
Opened by pktm at 2008-01-09 13:59 GwenDragon+2008-01-09 15:50:59-- Vorsicht! sizeof liefert vermutlich nicht das, was hier gesucht wurde. Im Falle dieses Codes ist unter C / C++ der Rückgabewert garantiert immer gleich, und zwar die Größe des Zeigers, der als Parameter übergeben wird; das ist in der Regel ein Maschinenwort von 4 oder 8 Bytes. Dasselbe gilt natürlich auch für den äquivalenten Code Selbst im Falle dieses Codes sollte der Rückgabewert noch stets derselbe wie beim obigen sein. Anders sieht es mit aus. Hier sollte stets 42 * sizeof(char) herauskommen. Langer Rede kurzer Sinn: C / C++ speichert im Datentyp "Array" keinerlei Längeninformation und übergibt ihn als Parameter in der Regel per Referenz. Mit sizeof kann nur dann die Länge eines Arrays bestimmt werden, wenn diese zur Kompilierzeit bekannt ist. Für alle anderen Fälle muss man die Längeninformation entweder durch Scannen (wie beispielsweise mit strlen) ermitteln, oder in einer separaten Variable / einem Feld einer Struktur mitführen. When C++ is your hammer, every problem looks like your thumb.
|