Zeiger-Problem:
-
Moinsen,
ich hab einen String auf den ein Zeiger gerichtet ist (**pdata). Mit dem zweiten Zeiger suche ich mir den "test" String in diesem String. Das funktioniert auch.
Jetzt möchte ich gern herausbekommen, wieviele character zwischen der aktuellen Position des **pdata Zeigers und des *ptr Zeigers liegen (wo sich test im string befindet). Das funktioniert nach dem unteren Code leider gar nicht...
void funktion(unsigned char **pdata) { char *ptr; unsigned short length=0; ptr = strstr(*pdata, "test"); length = *pdata - ptr; /* <- Problem */ }
Gruß
KumpelJA
-
Hya!
Probier mal andreasrum:
length = ptr - *pdata;
-
Wenn *pdata der Beginn des Strings ist, kann die Adresse nicht größer als ptr sein. Also:
length = ptr - *pdata;
-
Aber dran denken, daß ptr NULL ist, wenn der Suchvorgang nicht erfolgreich war.