Hallo nochmal, ich hab jetzt meine Funktion fast fertig, ich möchte damit einfach etwas rumprobieren in C++. Die Frage vorhin bezog sich nur auf
Ansi C, diese jetzt auf Cpp. Ich hab ein problem in der Funktion:
Code:
char * longtoip(const unsigned long zahl)
{
char ** iptmp = new char * [4];
int i, j;
char * ret;
ret = new char [10];
cout<<"Die Laenge von ret ="<<strlen(ret);
for (i = 0, j = 24; i < 4; i++, j -=8)
{
iptmp[i] = new char[4];
ltoa(((zahl >> j) & 0xFF),iptmp[i],10);
cout<<iptmp[i]<<endl;
cout<<"Die Stringlänge von "<<i<<" ist: "<<strlen(iptmp[i])<<endl;
}
return ret;
}
Wenn ich die Länge von ret zurückgeben möchte bekomme ich immer 2410. Das ist so komisch, wie kommt der auf die 24 davor? Ist nur irgendwie nicht nachvollziehbar.
Wäre euch für erneute Hilfe dankbar.
Warum immer 24? Die einzige 24 die vorkommt ist in j. Ich weiß auch das in ret nur Rubbish als Wert vorhanden ist, darum gehts mir auch im moment nicht, ich verstehe nicht warum er mir die falsche länge von ret zurückliefert.
Gruß
Sebastian.
BTW hier der Ausdruck was immer kommt:
Zitat:
Bitte Zahl eingeben:
167772161
Die Laenge von ret =2410
Die Stringlõnge von 0 ist: 2
0
Die Stringlõnge von 1 ist: 1
0
Die Stringlõnge von 2 ist: 1
1
Die Stringlõnge von 3 ist: 1
*